Okay here is the situation. I'm trying to connect to MSN's IM servers (a giant headache) and I have all the code. In fact it used to work just fine, and occasionaly still does. The problem is that sometimes data seems stuck. For instance sometimes it just sets there until you send it another IM then it processes the previous IM. Which lead me to beleive that it had to do with buffers and my reading of the socket. So I read and read and re-read and from all I could tell IO::Socket::INET is set to autoflush by default. Which I thought meant that it would flush the buffered data. I could be way off all together I don't know. I am currently useing the following code to check the socket and then read from it.

while (1) { my @ready; @ready = $Select->can_read(1); foreach $fh (@ready) { my $fn = $fh->fileno; unless ($_ = $fh->getline()) { $Select->remove($fh); next; } # work with $_ here } }

Thats not the exact code but the removed stuff has nothing to do with the sockets. Now I wonder if the problem might not lie with getline(). If I call getline() and there is more than one line, shouldn't the handle still be returned by can_read() the next time threw the loop?

If you could help me with this I would be very thankful. I kind of inherited the socket code, I mostly work with the exchange of data with the server because this code worked fine up until recently.

BTW I have checked the $Select and I am fairly sure that the socket is staying open and in there. There are times whene there are multiple sockets in that and times when there is only one, but it never drops to 0. In other words its acting correctly.

Thanks agian for any ideas or help with the sockets.


___________
Eric Hodges

In reply to Windows Sockets Seems stuck by eric256

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.