Sockets - Windows X Linux

1 resposta
C

Salvem,

Estou com um problema no mínimo curioso :
 Tenho uma aplicação servidora que recebe conexões via Sockets e lança Threads para tratar tais solicitações ( típico ).
  Essa Thread escreve no OutputStream do Socket cliente em um intervalo

determinado de tempo.
Quando o Servidor esta rodando em uma máquina Windows e o cliente termina bruscamente ( um reset na máquina ou queda de energia ) , a tentativa de escrever no OutputStream do Socket cliente resulta em uma IOException, o que é o comportamento esperado.
No entando, se a máquina Servidora for Linux ( no meu caso Red Hat 9 ) isso não acontece, a Thread fica escrevendo no OutputStream normalmente
como se o cliente estivesse ainda do outro lado escutando, o que não é verdade.
Já pesquisei toda a API de Sockets e Channels mas não encontrei nada que me ajudasse, então lá vai a pergunta :
Existe alguma forma de resolver isso além de exigir que o cliente responda enviando algo de volta ??
Qualquer palpite vale.

1 Resposta

louds

WritableChannel.write -> retorna um int, se for -1 quer dizer EOS.

Criado 16 de fevereiro de 2004
Ultima resposta 17 de fev. de 2004
Respostas 1
Participantes 2