Sensing Crashed Clients. There is no way to deterministically determine when a client has crashed. In some cases, you will get an EOF on its socket - this assures that the connection was closed - but it might have been due to the client actually closing a connection after a 'keep alive' timeout. A client might seem crashed if the network is down - do not be too quick to announce it as crashed. Conclusion: use timeouts and note the exact reason why you decided that a client has crashed. Conclusion: when a client closes a connection, it should explicitly tell the server it is exiting.