我有一个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中使用其他方法。您可以尝试多种方法。例如,您可以注册选项处理程序或通知处理程序,也可以注册“间谍流”。