Suponiendo que tiene cierto nivel de control sobre el protocolo, soy un gran fan de enviar mensajes de texto para verificar que la conexión esté activa. Se ha demostrado que es el método más a prueba de fallas y, a menudo, le brindará la notificación más rápida cuando se rompa una conexión.
TCP keepalives funcionará, pero ¿qué pasa si el host remoto se apaga de repente? El TCP puede demorar mucho tiempo. Por otro lado, si tienes lógica en tu aplicación que espera una respuesta de latido cada x segundos, la primera vez que no la obtienes sabes que la conexión ya no funciona, ya sea por una red o por un problema del servidor en el lado remoto .
Consulte Do I need to heartbeat to keep a TCP connection open? para obtener más información.
http://stackoverflow.com/questions/969866/java-detect-lost-connection – Aziz
Y otra http://stackoverflow.com/questions/485855/how-do-you-handle- socket-disconnecting-in-java –
Respondido [aquí] (http://stackoverflow.com/a/17889321/207421). – EJP