[RESOLVIDO] Servidor em Java

0 respostas
vinians

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!

Criado 18 de outubro de 2014
Respostas 0
Participantes 1