c# - Telnet 服务器 -> 退格键/删除不起作用

标签 c# protocols telnet

我正在用 C# 实现一个简单的概念证明 Telnet 服务器,并通过内置于 telnet 客户端的 Windows 远程登录到它。 我将所有非 IAC 数据回显给客户端。但是,我不知道如何让退格键/删除键正常工作。 我从 telnet 客户端尝试了几种作用于“BS”的组合:

  • 'BS'(将光标向后移动一位但不删除字符)
  • 'BS''DEL'(与'BS'的结果相同)
  • 'BS''DEL''ESC[3~'(结果相同)

谁能告诉我退格和从屏幕上删除字符的正确控制序列是什么?

谢谢,

汤姆

最佳答案

多年来我一直试图弄清楚这个问题,但如果回声打开,它实际上非常简单。当检测到 \b(退格键)时。您可以发送(通过套接字):

Socket.Send(new byte[] { 0x08, 0x20, 0x08 });

0x08 发送退格键,这是一个非破坏性的退格键,它只是将光标移动到左边。 0x20 发送删除该字符的空格,然后退格键再次将光标移回左侧。就像一个魅力!

干杯

关于c# - Telnet 服务器 -> 退格键/删除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1689554/

相关文章:

python - 无法从本地服务器外部连接到 Django

linux - 如果我们关闭启动它的终端,linux 会杀死后台进程吗?

c# - 在 C# 中获取 OutOfMemoryException 的最简单方法是什么?

python - 是否有用于 python 的通用二进制协议(protocol)编解码器库?

ios - NSStream 不提供任何数据

clojure - 无法创建系统协议(protocol)

generics - 快速泛型的段错误

c# - 当另一个 View 模型的窗口关闭时,获取属性值

c# - 构建 C++/CLI 可执行文件时出现警告 C4691 : ignore or repair?

c# - 将查询字符串中的多个值绑定(bind)到数组参数