我有一个服务器和客户端在本地服务器上运行。
我以这种方式从服务器读取:
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
public static String readResponse() throws IOException{
String response = "";
String line;
while((line = br.readLine()) != ""){
System.out.println("s: " + line);
}
return response;
}
而且我从服务器得到响应,但是程序停止了,并且从那儿什么也没走:
Please enter option number: 1
c: MSGGET
s: 200 OK
s: Go for it now. The future is promised to no one.
当它应该继续时,它只是挂在这里。
我也尝试过:
while((line = br.readLine()) != null){
它一直在等待。服务器上可能有什么需要更改的内容,以告诉客户端我已完成数据传输。
请帮忙!谢谢!
最佳答案
while((line = br.readLine()) != ""){
System.out.println("s: " + line);
}
return response;
}
除非您的同伴计划将空行作为消息结束标记发送,否则此循环是毫无意义的,并且还会错误地比较字符串。
而且我从服务器得到响应,但是程序停止了,并且没有从那里走过。
它正在等待永远不会到达的空行。并且它忽略了流条件的终结。
while((line = br.readLine()) != null){
现在,此循环是正确的,但是直到流结束,它才退出,直到对等方关闭连接,该循环才会发生。
它一直在等待。
那就是应该做的。