我想實現一個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