Skip to content Skip to sidebar Skip to footer

Is Detecting A Tcp Socket Disconnect In Python Possible?

I'm experimenting with Python's socketserver.TCPServer, to see how it works. I think I have most things figured out, but the one question that remains is how to detect sudden clien

Solution 1:

It is perfectly fine for TCP connections to not transfer any kind of data for a long time. And it is also not a problem if a cable gets disconnected as long as it is reconnected later data need to be transmitted.

The only way to be sure that the peer is still reachable is to have some kind of heartbeat. This can be either be done at the application level or it can be done at the TCP level - using TCP keep-alive. Usually systems offer a way to not only enable TCP keep-alive per socket but also to adjust how often a keep-alive packet will be send when the socket is idle, i.e. how quick an application can find out that the peer is no longer there. To get to the details on how to do this in Python see How to change tcp keepalive timer using python script?.

Post a Comment for "Is Detecting A Tcp Socket Disconnect In Python Possible?"