【发布时间】:2013-08-09 15:31:36
【问题描述】:
我在使用 java 网络时遇到问题。我试图通过套接字从客户端读取消息。我使用 BufferedReader 来阅读消息。
public String read() throws IOException {
String message = reader.readLine();
return message;
}
当我使用服务器上的 reader.readline() 方法时,如果客户端终止连接,我实际上预计会出现错误。但是,它不会抛出异常,而是返回 NULL。
【问题讨论】:
-
那是因为服务器返回null,检查
if(message == null)然后杀死客户端。 -
Scanner没有readLine()方法。这似乎是一个BufferedReader方法,如果已到达流的末尾,则返回null。 -
@DummyCode 所以当我得到 IOexception 时,如果它不能那样工作?
-
@Eray Tuncer “到达流的末尾”意味着如果您正在从底层文件读取,则为文件末尾。因此,在 readLine() 方法的情况下,它返回 - 一个包含行内容的字符串,不包括任何行终止字符,如果已经到达“流的结尾”,则返回 null
-
它应该在
read()运行之前被杀死。
标签: java sockets exception networking streaming