BufferedReader ожидает ввода - PullRequest
       12

BufferedReader ожидает ввода

1 голос
/ 26 сентября 2011

Я пытаюсь читать из Socket с помощью BufferedReader следующим образом

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((line = in.readLine()) != null)
        {
        }

Я ввожу строку, скажем «AUTH», получаю значение переменной line как ÿûÿû ÿûÿû'ÿýÿûÿýAUTH

Есть ли решение этой проблемы?

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

Это просто означает, что дополнительные данные находятся в сокете по любой причине.Моя догадка заключается в том, что вы используете telnet для подключения к серверу, а это согласование протокола telnet .

Java не добавит дополнительные данные к тому, что действительноесть.

0 голосов
/ 26 сентября 2011

bufferedReader предвосхищает ввод

Нет, это не так. Что-то пишет дополнительный ввод, который вы не ожидаете. В этом случае Telnet. Telnet - это протокол, который включает в себя не только строки текста.

0 голосов
/ 26 сентября 2011

BufferedReader.readLine() для ввода, состоящего из «линий», убедитесь, что вы вводите правильно. Кроме того, вы можете определить свой собственный терминатор и затем читать вводимые символы за символом, используя BufferedReader.read() (используйте цикл while, если вы не знаете длину ввода, например while (in.read()!=-1) или что-то в этом роде).

...