Java Socket输入问题

时间:2011-05-18 17:41:49

标签: java sockets

我正在尝试进行编程练习,使客户端和服务器与套接字一起工作。对于它们之间的通信,我使用PrintWriter和InputReader。我坚持的是:我如何检查服务器是否正在尝试在客户端等待输入的同时向客户端发送内容?此时客户端循环是这样的:

do {
                outToServer.println(inFromUser.readLine());
                String fromServer=inFromServer.readLine();
                if(fromServer.equals("OK")){
                    clientSocket.close();
                }else{
                    System.out.println(fromServer);
                }
            } while (!clientSocket.isClosed());

问题在于,在某些情况下服务器需要打印多行,然后再次需要输入。相反它打印1行然后生病必须键入内容,然后另一行来等。有办法解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

所以你需要封装

outToServer.readLine();

在while循环中,其布尔条件类似于hasNext()函数。您可能需要按如下方式进行设置:

String x = outToServer.readLine();
//while x doesn't equal whatever readLine would return if there's nothing to read
//I'm not sure if this is a null String or not
while(x!=null){
    System.out.print(x);//print it however you wish
    String x = outToServer.readLine();
}

然后根据需要为inFromServer做类似的事情。