Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.protocols.tcp-ip    |    TCP and IP network protocols.    |    14,669 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 14,133 of 14,669    |
|    m.sambin@gmail.com to All    |
|    Winsock recv() hangs for 5 secs in some     |
|    15 Oct 14 07:08:15    |
      Hi.              I have a native Visual C++ application which acts as a socket server: it       accepts incoming TCP connections, and it reads/write some data from/to those       sockets.       Once a new TCP connection is received / accepted by the server, a new thread       is spawn, and all reads (i.e., calls to recv()) on that connected socket       happen in that separate thread. All communication is done according to a       well-defined standard        application-level protocol, implemented by several clients by different       developers/vendors. Hence, my server application is able to communicate with       clients by different developers/vendors, as long as they comply with this       well-defined application-level        protocol.              Now, my server application works fine with 99.9% of the client applications.       Nevertheless, I am experiencing strange delays with just a few clients.              In particular, with these "problematic" clients, once the client connection       has been accepted by my server application, the recv() calls in my dedicated       "receiver" thread hang for exactly 5 seconds before returning, even though       data shall be available,        since the client has already completed several send() calls.              The clients connecting to my server application run on hosts residing on the       same LAN as the host upon which my server application runs.              Please notice the following facts:              1 - With these specific "problematic" clients, **ALL** recv() calls in my       server application hang for 5 seconds before returning.              2 - My server application works fine (i.e., recv() show no relevant delays)       with other clients (actually, the vast majority of them).              3 - On the other side, those "problematic" clients seem to work fine (i.e., no       particular delays) with other third-party server applications implementing the       same application-level protocol as my own server application. Some of those       third-party server        applications are open source: I've inspected the source code of those       third-party server applications, but I could not find any relevant difference       in their implementation which could apparently justify the 5-seconds delay       that I am experiencing in my        server application.              I realize that I described the issue in quite generic terms, but maybe this "5       exact seconds" delay may tell something to some TCP/IP expert...              I would really appreciate any hint or suggestion to troubleshoot this problem.              Thanks in advance and best regards,              Marco              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca