我正在为我的 Java 网络考试练习一些东西,但我似乎无法弄清楚这一点。我编写了一个简单的服务器程序,假设向我的客户端程序询问一个问题,然后等待客户端的回复,然后再继续处理答案。
这是我的一些代码:
//Server:
BufferedReader in = new BufferedReader(
new InputStreamReader(clientSocket.getInputStream())
);
String answer1;
while(!in.ready()){ //wait till client replies
}
answer1 = in.readLine();
//do something with answer1
//repeat for answer 2 and so on.....
上面的循环不起作用,服务器只是运行整个程序而不等待客户端的回复。in.readLine() 语句本身(没有 while 循环)也不等待。
有没有简单的方法来检查 BufferedReader 是否为空或至少让程序等待回复?我知道我也无法测试它是否为空,因为只要连接了套接字,那将不会是真的。