×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
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,
Paul
________________________________________
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.
-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
--
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
As an Amazon Associate we earn from qualifying purchases.