Conexao Client - Server

Por favor, preciso de uma ajuda na leitura de dados de um programa servidor. Tenho um programa servidor que a cada conexão cria uma thread para tratá-la.
O trecho que roda na thread é o seguinte:

BufferedReader inFromClient = new BufferedReader(new InputStreamReader(conexao.getInputStream()));
DataOutputStream outToClient = new DataOutputStream(conexao.getOutputStream());
System.out.println ("1");
String chegada = inFromClient.readLine();
System.out.println ("2");

O que está ocorrendo é que quando um client envia dados fica-se parado no comando readLine() e só passa para a linha seguinte quando o socket é fechado.
O que eu gostaria é de tratar imediatamente o que é recebido do client enquanto a conexão estiver ativa.
Agradeço qualquer ajuda.