BufferedReader预置输入

时间:2011-09-26 09:57:01

标签: java sockets telnet putty bufferedreader

我正在尝试使用BufferedReader从Socket读取如下

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

我输入一个字符串,说“AUTH”,我得到line变量的值为ÿûÿûÿûÿû'ÿýÿûÿAAUTH

解决这个问题的方法是什么?

3 个答案:

答案 0 :(得分:3)

这只是意味着无论出于何种原因,额外的数据都在套接字中。我的猜测是你使用telnet连接到服务器,那就是telnet protocol negotiation

Java不会将真正存在的额外数据添加到那里。

答案 1 :(得分:0)

BufferedReader.readLine()用于包含“行”的输入,确保您正确提供输入。或者,您可以定义自己的终结符,然后使用BufferedReader.read()逐个字符地读取输入(如果您不知道输入的长度,请使用while循环,如while (in.read()!=-1)或类似的东西)。

答案 2 :(得分:0)

  

bufferedReader prepends input

不,不。有些东西正在编写你不期望的额外输入。在这种情况下,Telnet。 Telnet是一种不仅包含文本行的协议。