我的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,但我也无法得到它。
=>你对我如何收到它们有什么想法吗?
感谢您的帮助!
答案 0 :(得分:2)
TelnetClient
实例提供的输入流仅提供数据字符。 Telenet协议信令内容将被TelnetClient
代码过滤掉。
如果您想获取信令信息,选项等,您需要使用TelnetClient
API中的其他方法。您可以尝试各种方法。例如,您可以注册选项处理程序或通知处理程序,也可以注册“间谍流”。
答案 1 :(得分:1)
如果您真的想要查看所有数据,那么您应该只使用Socket
代替TelnetClient
。