0

我正在 xp 上编写一个 telnet 代理。现在我可以远程登录到系统的远程登录服务器并打印它的返回值发送回我的程序。

我发现一个非常令人费解的现象。当我第一次 telnet 到服务器时,它会要求我登录。我输入"tamlok",我可以看到它向我发送"116,97,109,108,111,107,10,13"了 ascii 的值"tamlok"(10 and 13 means '\n' and '\r')

但是登录后,我"tamlok"再次输入。它发回给我"27,91,56,59,51,52,72,116,0,97,0,108,0,111,0,107,0,27,91,57,59,49,72"

我建议它返回 unicode 以便"116"变成"116,0"等等。但我无法理解序列 "27,91,56,59,51,52,72""27,91,57,59,49,72". 我认为这可能是一个特殊功能的序列,就像{0x1B, 0x5B, 0x48, 0x1B, 0x5B, 0x4A}清除控制台一样。

那么,如何解读这一点呢?欢迎任何帮助!

4

1 回答 1

0

感谢 Joachim Pileborg。现在很明显它是终端控制代码。一个例子。所以 "27,91,56,59,51,52,72" 是 "[Esc][8;34H" 适合模式: Cursor Home [{ROW};{COLUMN}H 设置光标位置,后续文本将开始。如果没有提供行/列参数(即[H),光标将移动到屏幕左上角的起始位置。27,91,57,59,49,72”也是如此。

于 2012-04-13T23:34:59.957 回答