PrintWriter отправляет, а DataInputStream читает его - PullRequest
0 голосов
/ 04 марта 2012

Я получил сервер-клиентское приложение. На стороне клиента я использую этот поток ввода-вывода для вывода данных:

out = new PrintWriter(socket.getOutputStream(), true);
        out.println("yeah");

На стороне сервера я пытаюсь прочитать продукт по этой строке:

DataInputStream din = new DataInputStream(s.getInputStream());
    String clientId = din.readUTF();

Сервер достигает вышеуказанного оператора и останавливается там. В чем проблема? Два потока ввода-вывода не совместимы друг с другом? Нет никаких исключений, выданных одной из сторон, нет вывода. Я просто добавил System.out.println() до и после вышеприведенного оператора I = и определил, что программа не пересекает эту строку: String clientId = din.readUTF();

1 Ответ

0 голосов
/ 04 марта 2012

Вам следует использовать метод DataOutputStream.writeUTF(), если вы хотите читать с другого конца сокета с помощью DataInputStream.readUTF(). См. Javadoc на DataInput для более подробной информации о причинах. В качестве альтернативы попробуйте использовать буферизованный считыватель или сканер для считывания ваших данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...