2012-09-24 39 views
1

我目前正在编写一个服务,应该采取cleartext命令,然后根据thoose命令,这也是明文返回的东西。是BufferedReader忽略第一行吗?

我有这个奇怪的问题BufferedReader,或者,它可能是telnet奇怪,由于某种原因BufferedReader读取第一个命令,但是该命令被忽略无论我做什么,我可以通过发送第一个命令两次,但这只是扩展一点,在我的看法。

以下代码位于run()方法中。 然后我设置out作为PrintWriterin作为BufferedReaderruns变量默认为true

out = new PrintWriter(handle.getOutputStream(), true); 
in = new BufferedReader(new InputStreamReader(handle.getInputStream())); 
while (runs) { 
    String msg; 
    msg = in.readLine(); 
    String[] command; 
    command = msg.split(" ", 3); 
    /* do something with the command */ 
} 

所以我的问题是,如果BufferedReader是忽略第一行还是不与我coorperating的telnet?

如果是别的东西,那请赐教。

编辑 我得到这个调试消息:

调试:“/尼克halmark

所以我想,这是所有问题标记。

+0

你一定要深入研究并找出造成问题的原因,而不是仅仅解决它。有一个原因是它发生在某个地方。 –

+0

我一直在Netbeans和web上寻找问题的解决方案,但我没有找到答案。 –

+0

至少你应该打印/注销味精的连续值,看看是否给你一些线索。 – SJuan76

回答

2

我实际上采用了最新的腻子,因为我在Windows中发展......而据我记得......那么它默认不

如果您正在使用存在PuTTY,您需要选择“原始”连接类型。

Microsoft telnet服务器喜欢在开始时进行一些内容/协议协商,所以PuTTY默认会这样做,如per the RFC 854 spec。这是你正在阅读的垃圾。

+0

我应该知道,为什么Linux不使用这些字符,或者更确切地说telnet客户端? –

+0

@RalphAndreasen我不知道为什么,除了它可能与内容协商有关外,甚至不能提供未受过教育的猜测,一个人试图默认做,另一个则没有。 –

+0

啊我看到...无论如何谢谢你的答案。 –