Hi Scott,

Changing the application to a non-blocking one would require to much time/effort/impact at this moment.

I hoped someone would know the reason for this erratic behavior.

Guess I will consider the recv() with rc = 0 as being a timeout as well.

Kind regards,
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of Scott Klement <rpg400-l@xxxxxxxxxxxxxxxx>
Sent: Friday, November 20, 2020 4:43
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Subject: Re: Sockets - weird select/recv behavior

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 is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.

Help support midrange.com by shopping at amazon.com with our affiliate link: https://amazon.midrange.com

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].