BufferedReader是否忽略了第一行?

时间:2012-09-24 17:13:49

标签: java telnet bufferedreader

我目前正在编写一个应该采用明文命令的服务,然后根据thoose命令返回一些内容,这些命令也是明确的。

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

以下代码采用run()方法。 然后我将out设置为PrintWriter,将in设置为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忽略了第一行,还是telnet与我没有合作?

如果是别的话,请赐教。

修改 我收到了这条调试信息:

调试: ' / nick halmark

所以我想这是关于所有问号的。

1 个答案:

答案 0 :(得分:2)

  

我实际上正在使用最新的Putty,因为我正在开发一个Windows框...据我记得......那么它默认不存在

如果您使用的是PuTTY,则需要选择" Raw" 连接类型。

Microsoft telnet服务器喜欢在开始时进行一些内容/协议协商,因此PuTTY默认会将此作为per the RFC 854 spec执行此操作。这就是你正在阅读的垃圾。