Hi, I have a echo server running on Linux (CentOS 7) and a client application on Windows which creates many connections to the server. Both client and server are written using libuv. The client keeps sending large data (about 1MB) through the connections to the server until a time-out (say 5 seconds) occurs. When time-out occurs, client just close(uv_close()) the all connections without waiting for the server to send all data it received back to the client. At this point, I would expect that the server receives either RST or FIN which lead to ECONNRESET or EOF error on read/wirte callback so that the server closed the sockets. But some of the connections on server side don't report error through read/write callback and the result is dozens of connections remains ESTABLISHED without knowing that the client already close the connections. Those connections eventually get ETIMEDOUT error after several minutes, but I don't understand why they didn't report error immediately because servers are still trying to read and write on the sockets.
This only happens when the server is on Linux and the client is on Windows. All others cases are fine. I will be trying to compare the result without using libuv, but I'm just wondering if anybody has any experiences like me or if I'm missing something. Thanks, -- You received this message because you are subscribed to the Google Groups "libuv" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/libuv. For more options, visit https://groups.google.com/d/optout.
