关于windows xp上telnet中的ANSI / VT100终端控制转义序列

时间:2012-04-14 03:40:33

标签: network-programming windows-xp network-protocols

我对我现在正在编程的东西感到有点厌倦。我的程序将一些终端控制转义序列发送到windows xp上的telnet服务器,但它不起作用。

例如,我向它发送27 91 68,它将27解释为Esc并删除已输入的内容,然后将其直接显示为91和68 [和D.

但序列27 91 68应解释为左箭头并向左移动光标。 我对此很困惑。

ps:我正在编写telnet客户端和telnet服务器之间的代理,即代理构造与客户端和服务器的telnet连接(客户端和服务器是xp的原始连接)并转发我打印从服务器发送的数据包,发现其中一些像'“27,91,56,59,51,52,72”,我认为这只是转义序列。

我刚发现的一件非常有趣的事情是如果更改以下原始代码:

unsigned char buf[20];
buf[0] = 27;
buf[1] = 91;
buf[2] = 68;
send(sock,(char*)buf,3,0); 

代码如下:

unsigned char buf[20];
buf[0] = 'a';    \\a random character
buf[1] = '\b';     \\backspace,to delete the 'a'
buf[2] = 27;     \\then the escape sequences
buf[3] = 91;
buf[4] = 68;
send(sock,(char*)buf,5,0); 

它有效!!! 27现在被解释为转义序列的开始。我真的很困惑。

0 个答案:

没有答案