Telnet服务器 - >退格/删除无法正常工作

TJF*_*TJF 1 c# protocols telnet

我正在C#中实现一个简单的概念验证Telnet服务器,并通过telnet客户端内置的窗口telnet到它.我将所有非IAC数据回送给客户端.但是,我无法弄清楚如何使退格/删除正常工作.我尝试了一些来自telnet客户端的"BS"组合:

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

任何人都可以请指出什么是退格的正确控制序列并从屏幕上删除字符?

谢谢,

汤姆

小智 5

我被困在试图解决这个问题很长时间,但如果回声开启,它实际上非常简单.当\b检测到(退格)时.你可以发送(通过套接字):

Socket.Send(new byte[] { 0x08, 0x20, 0x08 });
Run Code Online (Sandbox Code Playgroud)

0x08发送退格键,它是一个非破坏性的退格键,只是将光标移动到左侧.0x20发送一个删除该字符的空格,然后退格再次将光标移回左侧.奇迹般有效!

干杯