java telnet 客户端重复 IAC 符号

问题描述 投票:0回答:1

我尝试向 telnet 服务器发送一些选项,所以我使用下面的代码:

    OutputStream outputStream = telnetClient.getOutputStream();
    byte[] option = new byte[3];
    option[0] = (byte) TelnetCommand.IAC;
    option[1] = (byte) TelnetCommand.DO;
    option[2] = (byte) 3;
    outputStream.write(option);
    outputStream.flush();

但是在wireshark中我看到4个字节而不是3个:

0xff 0xff 0xfd 0x03 而不是 0xff 0xfd 0x03

如您所见,0xff 字节是重复的。 我不知道为什么会发生这种情况。有人有什么想法吗?

java telnet
1个回答
0
投票

您应该使用

sendCommand()
方法发送
TelnetCommand.DO
,其前面加上
0xFF
,后跟选项。

您这样做的方式告诉客户端将字节作为 data 发送,因此

0xFF
在流中通过加倍来转义。

© www.soinside.com 2019 - 2024. All rights reserved.