You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Telnet客户端发送选项时IAC符号重复问题求助

Telnet发送选项时IAC被重复的问题解答

你遇到的IAC(0xff)被重复的问题,本质是TelnetClient的OutputStream已经自动做了转义处理。

Telnet协议规定:当需要在数据流中发送IAC字符本身时,必须连续发送两个IAC来转义(避免被当作命令前缀解析)。而你用的telnetClient.getOutputStream()返回的输出流,内部会自动扫描所有输出的字节,只要碰到0xff就自动添加一个额外的0xff转义——哪怕这个0xff是你用来作为Telnet命令前缀的IAC,它也会统一处理。

所以你手动构造的[0xff, 0xfd, 0x03],经过这个输出流处理后,第一个0xff会被转义成两个0xff,最终就变成了[0xff, 0xff, 0xfd, 0x03]。

解决方案

不要直接操作OutputStream发送Telnet命令,改用TelnetClient提供的API发送选项:

// 发送SUPPRESS GO AHEAD选项的DO命令(选项编号3)
telnetClient.sendOption(TelnetOption.SUPPRESS_GO_AHEAD, TelnetCommand.DO);

如果需要自定义选项编号,也可以用重载方法:

telnetClient.sendOption(3, TelnetCommand.DO);

这样TelnetClient会正确处理命令结构,不会出现多余的IAC转义。

内容的提问来源于stack exchange,提问作者Haster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 12:48:27