gpt4 book ai didi

java - 套接字在执行 readLine() 时卡住

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:21 25 4
gpt4 key购买 nike

我正在尝试通过 Java 中的套接字连接到 POP 服务器。我执行了以下代码来运行 LIST 命令以列出来自服务器的所有电子邮件。但我不知道为什么在第二个 readLine() 读取第二行及以后时,我的应用程序卡在那里。

popSock = new Socket(mailHost, pop_PORT);
inn = popSock.getInputStream();
outt = popSock.getOutputStream();
in = new BufferedReader(new InputStreamReader(inn));
out = new PrintWriter(new OutputStreamWriter(outt), true);

//USER and PASS commands to auth the server are ok

out.println("LIST");
String response = in.readLine();
System.out.println(response);

//Attempt to read the second line from the buffer but it hangs at here.
response = in.readLine();
System.out.println(response);

在第二个 in.readLine() 上,应用程序卡在此处,无法从此处继续。当我在 telnet 上运行 LIST 命令时,我得到了整个电子邮件列表。所以我应该从套接字得到相同的响应,但我没有。我应该如何从服务器逐行读取整个响应?

最佳答案

readLine() 在读取回车符或换行符之前不会返回,这是您从终端或文本文件读取时通常得到的结果。

如果 POP 服务器实际上没有在其消息末尾加上\r\n,我不会感到惊讶。试试 read()。

关于java - 套接字在执行 readLine() 时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14505639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com