Me encuentro con algunos problemas con la API de socket de Java. Estoy tratando de mostrar la cantidad de jugadores conectados actualmente a mi juego. Es fácil determinar cuándo se ha conectado un jugador. Sin embargo, parece innecesariamente difícil determinar cuándo un jugador se ha desconectado usando la API de socket.
Llamar isConnected()a un enchufe que se ha desconectado de forma remota siempre parece volver true. Del mismo modo, la llamada isClosed()a un socket que se ha cerrado de forma remota siempre parece volver false. He leído que para determinar realmente si un socket se ha cerrado o no, los datos deben escribirse en el flujo de salida y debe detectarse una excepción. Esta parece una forma realmente sucia de manejar esta situación. Tendríamos que enviar constantemente un mensaje basura a través de la red para saber cuándo se había cerrado un socket.
hay alguna otra solucion?