1

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

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

下面的代码在一个run()方法中。然后我设置out为 aPrintWriterina BufferedReader。该runs变量默认为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

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

4

1 回答 1

2

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

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

Microsoft telnet 服务器喜欢在开始时进行一些内容/协议协商,因此 PuTTY 将按照 RFC 854 规范默认执行此操作。那就是你正在阅读的垃圾。

于 2012-09-24T22:20:19.757 回答