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.

-SK

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


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,

Pauk

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2024 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].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.