BufferedReader.readLine() hænger
Jeg har lavet en klasee til at hente mine mails via pop3.Men metoden receive() hænger da BufferedReader.readline() ser ud som om at den bare hænger.
------------------------------------
package Mail;
import java.util.*;
import java.io.*;
import java.net.*;
import Logic.Setting;
/**
* <p>Title: ZedCash Proxy Checker</p>
*
* <p>Description: Inbox Proxy Checker</p>
*
* <p>Copyright: Copyright (c) 2007</p>
*
* <p>Company: ZedCash</p>
*
* @author Schaumann
* @version 0.1a
*/
public class POP3 {
private String host;
private String user;
private String pass;
private int port;
private boolean delete;
private PrintWriter out;
private BufferedReader in;
private Socket socket;
public POP3(String _host,String _user, String _pass,int _port,boolean _deleteEmail){
this.host = _host;
this.user = _user;
this.pass = _pass;
this.port = _port;
this.delete = _deleteEmail;
}
public boolean connect(){
boolean connected = false;
try {
socket = new Socket(host, port);
out = new PrintWriter(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
connected = socket.isConnected();
}
catch (UnknownHostException ex) {
return connected;
}
catch (IOException ex) {
return connected;
}
return connected;
}
public boolean login(){
boolean isLoggedIn = false;
receive();
send("user "+user);
receive();
send("pass "+pass);
receive();
send("STAT");
if(receive().contains((CharSequence)"OK"))
isLoggedIn = true;
return isLoggedIn;
}
public ArrayList downloadEmails(){
ArrayList emails = new ArrayList();
send("LIST");
receive();
return emails;
}
private void send(String cmd){
if(Setting.getDebug())
System.out.println("SENT > "+cmd);
out.print(cmd);
out.print("\r\n");
out.flush();
}
private String receive(){
String s = null;
try {
String line = null;
while( (line = in.readLine() ) !=null ) {
s = s + line;
}
}
catch (IOException ex) {
if(Setting.getDebug())
System.out.println(ex.toString());
return ex.toString();
}
if(Setting.getDebug())
System.out.println("RECEIVE < "+s);
return s;
}
public void endSession(){
send("QUIT");
receive();
}
}
