Pessoal,
Estou com uma dúvida sobre o BufferReader e espero que alguém possa me ajudar. Seguinte, terminei uma aplicação cliente servidor. Na aplicação o cliente faz uma verificação no servidor. Esse por sua vez retorna, via Stream, para o cliente um valor Boolean. Até ai tudo blz. Bom, assim que o cliente recebe essa informação, estou recebendo assim:
if(this.socket == null){
this.socket = new Socket(this.getConfiguracao().getDnsPortal(), this.NUM_PORTA);
}
OutputStream out = this.socket.getOutputStream();
out.write(("VER\n").getBytes());
out.write((nomeMaquina + versao + "\n").getBytes());
Thread.sleep(5 * 1000);
InputStream in = this.socket.getInputStream();
BufferedReader reader = new BufferedReader(new inputStream (in));
if(reader.ready()){
return Boolean.parseBoolean(reader.readLine());
}
Assim que o cliente recebe a informação, o stream é carregado em um buffer e depois é testado se o buffer está pronto. Ai é que está o problema. Quando é feito:
if(reader.ready()), essa validação sempre retorna false, sendo que o server retornou TRUE para o cliente. Para resolver isso, o que eu fiz foi retirar o reader.ready() e testar apenas o reader.readLine, o qual me imprime a resposta do servidor, que é TRUE. A minha dúvida é: é realmente certo utilizar o .ready() nesse caso ou se eu não utilizar não vai ter nenhum problema? Quando é que vocês custumam utilizar essa funcionalidade do bufferedReader.
Aguardo resposta