Java socket API: como saber se uma conexão foi fechada?

Eu estou correndo em alguns problemas com a API de soquete Java. Estou tentando exibir o número de jogadores atualmente conectados ao meu jogo. É fácil determinar quando um jogador se conectou. No entanto, parece desnecessariamente difícil determinar quando um jogador desconectou usando a API de soquete.

ChamandoisConnected() em um soquete que foi desconectado remotamente sempre parece retornartrue. Da mesma forma, chamandoisClosed() em uma tomada que foi fechada remotamente sempre parece retornarfalse. Eu li que, para realmente determinar se um socket foi ou não fechado, os dados devem ser gravados no fluxo de saída e uma exceção deve ser capturada. Esta parece ser uma maneira muito impura de lidar com essa situação. Nós apenas temos que constantemente enviar uma mensagem de lixo pela rede para saber quando um socket foi fechado.

existe alguma outra solução?

questionAnswers(7)

yourAnswerToTheQuestion