如何阻止Telnet客户端回显

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

我正在使用 Rust 和 Tokio 构建一个简单的 TCP 聊天服务器。我的代码功能与他们的聊天示例相同这里

但是,当在我的计算机(MacOS 12.6.6)上使用 telnet 客户端时,它总是回显用户输入的最后一行。我尝试过通过套接字发送各种不同的字节(IAC WONT ECHO 等),但这要么会中断并导致服务器端出现错误,要么什么都不做。 我注意到客户端总是默认为“过时的线路模式”,但我似乎无法像手册页提到的那样用“^E”切换回显。切换到字符模式会停止回声,但我想将其保持在逐行模式下。

我希望服务器默认不回显,如果有人知道我如何实现这一点,我将不胜感激。

rust tcp telnet rust-tokio
1个回答
0
投票
IAC DONT ECHO

没有控制本地回显的选项,它由客户端程序根据(远程)ECHO 选项确定。

注意,如果你打开ECHO,但服务器已经发送了WILL GA,客户端的行为会很奇怪,但我不知道为什么:

没有ECHO的GA的行为是什么? (远程登录)

. 也许这就是您所看到的错误行为。
如果您想要本地编辑,但还指定回显,您可能需要实现 LINEMODE。

(有趣的是,我同时有完全相同的想法。)

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