我必须编写服务器应用程序,从客户端请求问题并接收答案。这是我的客户代码:

clientSocket = new Socket("localhost", 1234);
        System.err.println("Client started");
//get questions
        ObjectInputStream in = new ObjectInputStream(clientSocket.getInputStream());
        Question q = (Question)in.readObject();
//send answer
        PrintWriter out = new PrintWriter(clientSocket.getOutputStream());
        out.print("a1");
        out.flush();


和服务器代码:

//sending questions
ObjectOutputStream out = new ObjectOutputStream(client.getOutputStream());
        List<Question> quest = Questions.getInstance().getQuestions();
        out.writeObject(quest.get(0));
        out.flush();
    //get answer
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        String temp = null;
        while ((temp = in.readLine()) == null) {}
        String answer = temp;


问题已成功发送,以后又被客户端接收,但是服务器始终无法获得答案(读取temp变量时出现无限循环)。问题是什么?

最佳答案

您的电话out.print(“ a1”);在客户端上,但是使用in.readLine()在服务器上读取一行。您是否应该在客户端上使用println()进行写出,否则服务器将永远无法到达行尾? – CodeChimp 11月21日在21:07


感谢CodeChimp

07-28 03:19
查看更多