0

我有一个 Telnet 客户端定义为:

    TelnetClient telnet = new TelnetClient();
    telnet.connect(server, port);

然后我得到输入流:

    InputStream in = telnet.getInputStream();

然后尝试循环读取上面的内容:

    while (true) {
    int TEST = in.read();
    }

当我收到输入的“文本”部分时,一切似乎都很好......但我错过了(对我来说非常重要!)前导字节。这是我在端口上看到的情况的窥探:

    64: a88f ffff 3034 3131 3032 3030 3030 3030    ¨...041102000000
    80: 3030 322e 3031 3131 2e36 2e34 2020 3135    002.0111.6.4  15
    96: 2e39 2e33 2020 3030 3132 30                .9.3  00120

注意“ffff”:这是我需要的主要部分(之前的一切都是垃圾:TCP 通信的一部分)。

但是,在打印我的“TEST”变量时,我只看到“041102...等”。

我也尝试过使用 BOMInputStream,但我也无法得到它。

=> 你知道我怎么能收到这些吗?

谢谢你的帮助 !

4

2 回答 2

2

实例提供的输入流TelnetClient只会提供数据字符。Telenet 协议信令内容将被TelnetClient代码过滤掉。

如果您想获取信令信息、选项等,您将需要使用TelnetClientAPI 中的其他方法。您可以尝试多种方法。例如,您可以注册一个选项处理程序,或一个通知处理程序,或者您可以注册一个“间谍流”。

于 2012-08-17T15:16:22.010 回答
1

如果您真的想查看所有数据,您应该只使用Socket而不是。TelnetClient

于 2012-08-17T15:54:26.813 回答