Amigos eu criei um servidor em java e está funcionando perfeitamente. Quando aceita uma conexao, ele cria uma thread para tratar daquela conexao lendo strings e enviando strings para o cliente. Para testar, eu estou usando o Putty como cliente na opção RAW que apenas enviar o que se digita e receber o que o meu server envia.
Tudo esta funcionando bem, mas quando eu fecho o cliente na marra eu não consigo detectar isso no meu server e acaba por ficar lendo a inputstream forever…
Abaixo o código da minha thread:
public class ConexaoCliente implements Runnable
{
private Socket client;
private JTextArea textArea;
private OutputStreamWriter out;
ConexaoCliente(Socket client, JTextArea textArea)
{
this.client = client;
this.textArea = textArea;
}
@Override
public void run()
{
String line;
InputStreamReader inStream;
BufferedReader in;
try
{
inStream = new InputStreamReader(client.getInputStream());
out = new OutputStreamWriter(client.getOutputStream());
in = new BufferedReader(inStream);
while (client.isConnected())
{
line = in.readLine();
line = line + "\r\n";
textArea.append(line);
}
in.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
public OutputStreamWriter getOutput()
{
return out;
}
}
O que devo fazer pra detectar quando a conexão quebra?
-edicao-
Consegui descobrir como, na verdade é bem simples:
while ((line = in.readLine()) != null)
{
line = line + "\r\n";
textArea.append(line);
}
Flws!