gpt4 book ai didi

c - 要求 Telnet 服务器忽略命令

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:02 25 4
gpt4 key购买 nike

假设我有一个工作的 Telnet 服务器和客户端;客户端是我自己用 C 编程创建的,尽管服务器不受我控制(在我的例子中,它是 Perle Systems IOLAN SCS48,但它可以是任何启用 RFC2217 的 Telnet 设备)。

我想使用设备的串行隧道功能(通过 Telnet 的 RFC 2217 协议(protocol)),但只能在连接开始时使用。因此,我收到来自服务器的四个协商请求(WILL TRANSMIT-BINARYDO TRANSMIT-BINARYWILL ECHODO SUPPRESS-GO-AHEADWILL SUPPRESS-GO-AHEADDO COM-PORT-OPTION;最后一个来自 RFC 2217),所有我对此做出响应,然后设置波特率、数据大小、奇偶校验位和停止位。

到目前为止一切顺利,但现在我想重新安排通信,以便服务器忽略所有 future 的命令(尤其是 IAC 字符 0x255),这样我就可以将十六进制转换后的字符串通过设备传递到接收端(连接到设备的串行端口),接收端获取我发送的每个字节(并且不会为我的字符串中某处的每个 0x255 丢失三个字节,或者有七个字节0x255 0x250(IAC SB)。

或者,是否有可能让服务器将转义的转义字符(连续两个 0x255,然后作为输入打印)作为单个 0x255 传递?

我不想关闭连接以重新打开它是原始连接,因为我的串行设置会丢失(因为这就是设备的 COM 端口重定向的工作方式,我想)。但是,我不需要重新建立命令监听,因此如果我需要重新配置波特率,连接可以简单地关闭并作为另一个 Telnet 连接重新打开。

我该如何处理?

最佳答案

如果有标准的 IAC DO IGNORE-FURTHER-IACS,我从未听说过。

RFC 854没有很好地解释这一点,但是连续两个 IAC 的文档含义是“数据字节 255”,所以我认为服务器已经应该将 0x255 0x255 作为单个 0x255 向前传递。它不是这样做的吗?

关于c - 要求 Telnet 服务器忽略命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com