2012-03-03 2 views
0

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

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();

+0

Что означает «Сервер достигает вышеуказанного утверждения и останавливается на достигнутом» означает, вы получаете исключение, ошибку, что? Дайте подробную информацию о проблеме, чтобы люди могли понять ваш вопрос. – Juvanis

ответ

0

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

Смежные вопросы