我有一个 Java 套接字,它连接到 SMTP 服务器来发送电子邮件,并使用 BufferedReader 和 Writer 来读取和写入套接字。我的问题是知道何时终止写入套接字后调用的 while() 循环;使用
while(bufferedreader.readLine() != null)
无法工作,就好像没有从服务器读取的行一样,BufferedReader
只是挂起而不是返回 null
。
最佳答案
从套接字读取数据时不要使用readLine()
,因为readLine()
假定传入流是一个文本文件,它具有行结尾。情况可能并非如此,这会无限期地阻止 readLine()
,因为即使传入流已结束,也不会出现行结束。
关于读取所有输出时 Java 套接字挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294268/