Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Surissoft.com

Como derrubar sessões penduradas do ServerSocket

Recommended Posts

Olá pessoal,Estou com um problema e gostaria que alguém me ajudasse!Tenho uma aplicação Servidor, utilizando o componente ServerSocket e várias aplicações clientes conectadas a ele, usando o ClientSocket.Tudo funciona normalmente. Mas algumas vezes, quando falta energia, ou a máquina do Client tem o cabo retirado da tomada sem que a aplicação seja fechada corretamente, as conexões com o servidor ficam "penduradas" como se estivessem em uso.Como faço para identificá-las e derrubá-las????Fico no aguardo!Um Abraço!GUSTAVO S. LARSEN

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode implantar no servidor uma rotina que de tempos em tempos envie uma mensagem aos clientes..

 

os clientes recebem a mensagem e respondem para o servidor...

 

os que não responderem... manda a conexão pro http://forum.imasters.com.br/public/style_emoticons/default/devil.gif ... eeheh!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei fazer isto, mas como aquele cliente não responde, nenhum evento do server é disparado, então não sei em que momento fazer a desconexão!Pois estou fazendo um loop em todas as conexões e as que não responderem quero derrubar.Tem com mandar um exemplo!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, infelizmente não possuo exemplo pois nunca mexi muito com Socket...mas o princípio é esse mesmo...você tem meio que ativar um Timer... vai... uns 5 segundos... se a aplicação cliente não responde... se você não recebe resposta... manda pro http://forum.imasters.com.br/public/style_emoticons/default/devil.gif ...por exemplo...

- você manda uma msg pro cliente...- ativa o contador de tempo...Se ele estiver ativo:

- ele responde a sua mensagem...- você no server recebe a mensagem e para o contador de tempo...

Senão

- ele não responde sua mensagem...- o contador de tempo da o evento OnTimer...- você derruba a cnx com o cliente...

Fim
o caso é mais ou menos esse... agora cabe a você jogar isso pra programação...Belê?? é que não possuo o exemplo mesmo, senão lhe mandava... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.