Hi Paul,

I've run into that, too.  I'm not sure what causes it, but I solved it by simply using non-blocking sockets.  If I get a EWOULDBLOCK/EAGAIN from recv(), I just call select() again.


On 11/19/2020 3:47 PM, Paul Nicolay wrote:

I've written a sockets listener program that submits a server to handle the incoming clients (this is all based on the listen/accept, takedescriptor/givedescriptor logic).

While this goes fine, I do have a strange issue (when I do a test TELNET without entering anything) where the server program is doing its initial select() to see if data is available to be read. This select() function however immediately returns 1 (so the read flag is set and data should be available), but when doing the actual recv() it returns 0 (so there's no data) ?

Anyone an idea what might be wrong ? I would expect that the select() waits till the timeout expires and returns 0.

Kind regards,


This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2020 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].