I have tried various methods including:
$line = <$socket>;
and sysread and recv to solve a problem I have with no luck.

I am writing a TCP client geared towards speed and effeciency using IO::Socket, and I want it to timeout on a socket and move on through the loop if it doesn't receive any data within a set period of time. However none of the above examples seemed to work, and when the remote side doesn't send any data, the client side just 'hangs' indefinately. I don't think IO::Select is what I need either, as the Filehandle (socket) can definately be read from okay, its just that there is nothing there to be read yet (as the remote side hasn't produced any information).

I have no control over the server side so my client needs to be able to handle this...

Thanks in advance,
-jonny

In reply to Timeouts when reading from socket Filehandles? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.