我正在用 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/