BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((line = in.readLine()) != null)
{
}
我输入一个字符串,说“AUTH”,我得到line
变量的值作为玉宇ÿûÿû'ÿýÿûÿýAUTH
这个问题的任何解决方案?
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((line = in.readLine()) != null)
{
}
我输入一个字符串,说“AUTH”,我得到line
变量的值作为玉宇ÿûÿû'ÿýÿûÿýAUTH
这个问题的任何解决方案?
这只是意味着额外的数据出于任何原因在套接字中。我的猜想是你使用telnet连接到服务器,那就是。
Java不会为真正存在的内容添加额外的数据。
是的,我使用telnet(腻子) –
我同意,尝试与[netcat](https://secure.wikimedia.org/wikipedia/en/wiki/Netcat),而不是telnet。使用Putty,在主机名下,有连接类型,使用“raw”而不是“telnet”。 –
BufferedReader.readLine()
用于包含“行”的输入,确保您正确地提供输入。或者,您可以定义自己的终止符,然后使用BufferedReader.read()
逐个字符地读取输入字符(如果您不知道输入的长度,请使用while循环,如while (in.read()!=-1)
或类似的东西)。
的BufferedReader预规划输入
不,它不需要。有些东西正在写入你不期待的额外输入。在这种情况下,Telnet。 Telnet是一种不仅包含文本行的协议。
如何输入字符串? – Thilo
也许你会使用一个Telnet客户端: http://stackoverflow.com/questions/3208993/odd-behavior-when-connecting-to-my-program? – YMomb