Estou desenvolvendo um cliente para pop 3 , mas estou com um problema ,quando busco um mensagem o programa entra em loop … como eu faço?
public String conectar(String host , int porta ){
//inicializa o socket para comunicar com o servidor
try{
s = new Socket(host, porta);
}catch(Exception e){
System.out.println("Erro de conexao" + e.getMessage());
}
conectado = true;
//criar os fluxo de saida e entrada de dados
try{
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(s.getOutputStream(), true);
}catch(IOException e){
System.out.println("Erro de conexao" + e.getMessage());
}
try{
return "Resposta do servidor 1 --> "+ in.readLine()+"\n";
}catch(IOException e){
return "Erro ao conectar no servidor ";
}
}
//executar um comando passado por parametro
public String executaComando(String comando){
out.write(comando+"\n");
out.flush();
try{
return "Resposta do servidor --> "+ in.readLine()+"\n";
}catch(IOException e){
return "Erro ao conectar no servidor ";
}
}
public String buscaMensagem(int i){
String resposta =this.executaComando("RETR "+i+"\n");
String temp=resposta;
try{
//AQUI ACONTECE O LAÇO
while((temp=in.readLine()) != null){
resposta =resposta.concat(temp);
}
} catch (IOException ex) {
// tratar ex return "Erro na busca da mensagem ";
}
/*
*/
return "mensagem"+i+".html";
}
//socket para fazer a coneção com o servidor
private Socket s;
//buferr de entrada da dados
private BufferedReader in;
//buffer de saida de dados
private PrintWriter out;
private boolean conectado=false;
/**
* @return the conectado
*/
public boolean estaConectado() {
return conectado;
}
}
Obrigado …flw