Por favor,
sou iniciante em Java e tenho um exemplo de um pequeno programa servidor, onde a cada conexão cria-se uma thread para tratá-la.
O trecho que roda na thread (tratamento do que chega do client) é o seguinte:
System.out.println ("Iniciou thread ...");
// Cria uma buffer que irá armazenar as informações enviadas pelo cliente
BufferedReader inFromClient = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
// Cria uma stream de sáida para retorno das informações ao cliente
DataOutputStream outToClient = new DataOutputStream(conexao.getOutputStream());
System.out.println ("1");
// Faz a leitura das informações enviadas pelo cliente as amazenam na variável "EscritaCliente"
EscritaCliente = inFromClient.readLine();
System.out.println ("2");
// Imprime a String modificada no console do servidor
System.out.println("Chegaram: "+EscritaCliente.length()+" bytes");
// Imprime a String modificada no console do cliente
outToClient.writeBytes("Chegaram aqui "+EscritaCliente.length()+" bytes");
System.out.println ("Fim de thread.");
O que está ocorrendo é que quando há uma conexão o sistema fica parado no comando readLine() enquanto o socket estiver aberto. O trecho seguinte (println("2") só é executado quando o socket é fechado.
Gostaria de tratar imediatamente o que chega do client.
Como eu poderia proceder ?
Obrigado antecipadamente.