我有一个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 ... etc”。

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

=>您对我如何收到这些钱有任何想法吗?

谢谢你的帮助 !

最佳答案

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

如果要掌握信令信息,选项等,则需要在TelnetClient API中使用其他方法。您可以尝试多种方法。例如,您可以注册选项处理程序或通知处理程序,也可以注册“间谍流”。

10-06 14:03