我尝试向 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 字节是重复的。 我不知道为什么会发生这种情况。有人有什么想法吗?
您应该使用
sendCommand()
方法发送 TelnetCommand.DO
,其前面加上 0xFF
,后跟选项。
您这样做的方式告诉客户端将字节作为 data 发送,因此
0xFF
在流中通过加倍来转义。