2
respostas

Problema para detectar quando um cliente desconectou de um servidor socket

Estou com um problema para conseguir detectar em meu servidor socket quando um cliente se desconectou de forma inesperada. Tentei utilizar os métodos isClosed, isConnected mas a conexão continua me dizendo que o cliente está conectado e a conexão ativa.

2 respostas

Oi Rodrigo, tudo bem?

Para você saber se o Socket está conectado ao ServerSocket, são esses métodos mesmo, no caso, você verifica a instância do socket vinda do accept() do ServerSocket. O próprio Javadoc diz isso https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

Opa Rodrigo, esses métodos te dão informações sobre o seu lado da conexão, não do outro... Acho que o único jeito de vc verificar isso é tentando mandar um ping para a outra ponta e vendo se vai lançar exception.. Se lançar, quer dizer que ela tá fechada :).