更新:我是个白痴。服务器有一条线路out.println((String) null);
,客户端用来知道何时停止和断开连接。原来那行是不必要的,可能是“null”来自哪里(我不知道 tat 是如何变成字符串的,但是......)但是谢谢大家的帮助!
我正在编写一个客户端-服务器程序,在该程序中,一旦服务器将其发送为空,客户端就会终止。有问题的循环是:
while ((message = in.readLine()) != null) {
System.out.println("C: Recieved " + message + " from server");
}
输出是:
C: Recieved Hi from server
C: Recieved null from server
服务器null
在发送 hi 之后和调用close()
客户端之前向客户端发送一个。我可能应该在前面提到这一点,但我在 java.net 中使用了 Socket 和 ServerSocket 类。但是为什么 while 循环运行两次,即使在 message 是时也进入null
?
编辑:服务器发送空值的行是out.println((String) null);
. 这会转换为字符串“null”吗?