我想实现一个POP3客户端。我知道在POP3协议中,每条消息以\r\n
结尾。我想用Java编写一个recvuntil
方法,它将能够一次接收完整的消息。直到 r n在Java中
超级容易在Python:
def recv_all_until_ver3(s, crlf):
data = ""
while data[-len(crlf):] != crlf:
data += s.recv(1)
return data
然而,当我试图做同样在Java中:
class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException {
// TODO code application logic here
String serverAddress = "interia.pl";
int port = 110;
Socket s = new Socket(serverAddress, port);
BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
String answer = "";
while (!answer.contains("\r\n")) {
answer = input.readLine();
System.out.println(answer);
}
}
}
它接收一个消息,而不是手结束本身。有什么办法可以在Java中实现这个方法吗?我可以直接阅读字符,而不是整行,直到我在邮件中找到\r\n
?谢谢。
您可以https://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html#read-- – Fildor