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.

Reply via email to