3
我必须编写服务器应用程序,请求来自客户端的问题并接收答案。这是我的客户端代码:Java套接字不接收数据
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;
问题发送成功,后来被客户接受,但服务器永远不会得到答案(无限循环,而读临时变量)。问题是什么?
你调用'的out.print( “A1”);'在客户端上,但阅读的线路使用'in.readLine在服务器上( )'。你不应该在客户端使用'println()'写出来,否则服务器永远不会到达行的末尾? – CodeChimp
很确定这是问题......为什么不把它作为答案发布,所以这就从没有答案的列表中... ...? –