我正在尝试使用BufferedReader从Socket读取如下
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((line = in.readLine()) != null)
{
}
我输入一个字符串,说“AUTH”,我得到line
变量的值为ÿûÿûÿûÿû'ÿýÿûÿAAUTH
解决这个问题的方法是什么?
答案 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是一种不仅包含文本行的协议。