Socket n quer fechar sozinho

2 respostas
W

tipo, to implementando um programa cliente servidor, o servidor verifica constantemente as conexoes atreladas a ele, qdo eu rodo um cliente via telnet, e fecho o telnet, o programa detecta isso sozinho e ja libera vagas para outros usuarios poderem acessar (o servidor tem limite de usuarios), mas tipo, qdo eu faco o cliente via Java, a conexao n fecha sozinha qdo o programa eh terminado… eu coloquei um metodo pra fecha a conexao antes do programa fechar, ai o funciona, mas o problema é: se o programa for finalizado de forma incorreta?

ai a conexao fica la ocupando espaco no servidor sem o kra estar mexendo… tem como eu configura a conexao pra encerrar sozinha qdo o programa for fechado?

2 Respostas

saoj

dá uma olhada em setKeepAlive do socket

vc precisa setar isso para true…

o problema que o timeout do socket no windows é alto…

a 3 anos atrás quando mexi com isso era um parametro que vc setava no registry do windows.

concluindo: vc precisa setar o keepalive para true e achar no windows ou no os que vc está usando onde se configura o tempo de keepalive dos sockets…

daí vc conecta o seu cliente, puxa fora o cabo de rede e fica esperando o socket morrer…

sem keepalive vc tira o cabo de rede e o socket fica ali para sempre…

boa sorte

W

aproveitando sockets, eu queria tirar uma duvida, qual a diferenca entre os metodos isConnected() e isClosed()??

um n eh apenas o inverso do outro?? pra q 2 metodos diferentes? n eh usar ! qdo quizer o inverso?

apesar d q… comigo o isConnected() nunca funciono direito…

mas uma coisinha

tem como a partir do programa servidor eu “pingar” o cliente pra ver c ele ta conectado?

Criado 1 de abril de 2005
Ultima resposta 3 de abr. de 2005
Respostas 2
Participantes 2