Мне нужно написать серверное приложение, которое запрашивает вопросы у клиента и получает ответ. Это мой код клиента: Код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;
Вопросы успешно отправлены и позже получили от клиента, но сервер никогда не получить ответ (бесконечный цикл при чтении переменной TEMP). В чем проблема?
Ваш вызова 'out.print ("a1");' на клиенте, но читает строку на сервере с помощью 'in.readLine () '. Разве вы не должны писать с помощью 'println()' на клиенте, иначе сервер никогда не дойдет до конца строки? – CodeChimp
Довольно уверен, что это проблема ... Почему бы не опубликовать это как ответ, так что это выходит из оставшегося без ответа списка ...? –