He escrito un servidor que realiza IO sin bloqueo utilizando la API Java NIO. Estoy viendo una situación en la que, de vez en cuando, una aplicación cliente se apaga abruptamente (por ejemplo, debido a una pérdida de energía) y la conexión se deja abierta en el lado del servidor.NIO - Detectando una conexión cerrada
Un colega ha tenido el mismo problema y dijo que utiliza los latidos del corazón para detectar este tipo de cosas, pero espero que haya una manera más fácil. ¿Alquien más se ha encontrado con este problema?
Alguna información adicional: Mi diseño de servidor actual cancelará una tecla y cerrará el canal correspondiente si detecta IOException
al intentar una operación de lectura/escritura. Este enfoque parece funcionar el 99% del tiempo; Solo he visto un puñado de situaciones en las que la conexión parece estar abierta.
Gracias ZZ Coder - Eso es lo que pensé (temía). Estoy bastante sorprendido de que esta no sea una característica de TCP. – Adamski
Un "ping" más bien, estas aplicaciones no son humanas, ya sabes. –