2011-09-26 47 views
1

我想如下的BufferedReader预规划输入

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

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

从使用BufferedReader中读取套接字

这个问题的任何解决方案?

+0

如何输入字符串? – Thilo

+0

也许你会使用一个Telnet客户端: http://stackoverflow.com/questions/3208993/odd-behavior-when-connecting-to-my-program? – YMomb

回答

3

这只是意味着额外的数据出于任何原因在套接字中。我的猜想是你使用telnet连接到服务器,那就是​​。

Java不会为真正存在的内容添加额外的数据。

+0

是的,我使用telnet(腻子) –

+0

我同意,尝试与[netcat](https://secure.wikimedia.org/wikipedia/en/wiki/Netcat),而不是telnet。使用Putty,在主机名下,有连接类型,使用“raw”而不是“telnet”。 –

0

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

0

的BufferedReader预规划输入

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