SCOUG-Programming Mailing List Archives
Return to [ 08 |
October |
2000 ]
>> Next Message >>
Content Type: text/plain
My problem: Every once in a while when I have a socket open and am
receiving data, my programs hang after they've made a Socket Receive
call (the recv() call) and, typically, have received a portion of a data
stream. Apparently my TCP/IP (as set up by my programs) doesn't
recognize that no data is being returned and keeps waiting instead of
timing out.
My questions are: 1) How do I get a "Timed Out" error return when I
make a Socket Receive call? 2) What is the "default" value of the
timeout value since it _appears_ that the default value is "wait
forever"? 3) Is there a TCP/IP configuration setting for the entire
system somewhere that I don't know about which sets this value?
How I tested: I wrote debug code into one of my programs and ran five
instances of it overnight. Four of the five instances "hung" at 4:45
this morning and my debug code shows that each program made the Socket
Receive call and never got a response. Further, my debug code shows
that I was receiving data at 4:45 and suddenly the data streams just
stopped -- my guess is that something happened on my DSL line or at the
sending server and transmission was interrupted. The results of the
fifth instance of the program are irrelevant since it apparently was
updating a database with just-received data at 4:45 and therefore did
not have a socket open at that time.
What my programs should perhaps do: I use the Set Socket Options
"RcvBuf" call to increase the buffer size (to 16,384) and there _is_ a
Set Socket Options "RcvTimeO" call as well -- is this what I use to set
the Receive Timeout time? I have no documentation on "RcvTimeO". (My
PL/I VisualAge doesn't have any help on this that I can see. I do have
VisualAge C++ v. 3.0 but can't find any appropriate doc file in the
IBMCPP\HELP\ directory -- the only search hit I got was on
"somsSetsockopt" in the somguide.inf file, and that doesn't have a
description of the call. I also have Watcom C/C++ v. 11 and I can get
that box out if I should look there. The online TCP/IP Rexx Sockets API
Reference doesn't have any help on this that I can find, just a mention
of the call.)
Thanks for any help,
- Peter
=====================================================
To unsubscribe from this list, send an email message
to "steward@scoug.com". In the body of the message,
put the command "unsubscribe scoug-programming".
For problems, contact the list owner at
"rollin@scoug.com".
=====================================================
>> Next Message >>
Return to [ 08 |
October |
2000 ]
The Southern California OS/2 User Group
P.O. Box 26904
Santa Ana, CA 92799-6904, USA
Copyright 2001 the Southern California OS/2 User Group. ALL RIGHTS
RESERVED.
SCOUG, Warp Expo West, and Warpfest are trademarks of the Southern California OS/2 User Group.
OS/2, Workplace Shell, and IBM are registered trademarks of International
Business Machines Corporation.
All other trademarks remain the property of their respective owners.
|