-2

我通过套接字从 telnet 获取字符。我不知道如何检查是否按下了箭头键。我有 char * 缓冲区,存在此消息

4

1 回答 1

2

键盘上的光标字符没有 Ascii 值 - 因此没有标准方法将它们表示为 char。此外,telnet 没有对另一端的机器做任何假设,它可能是 1950 年代的电传打字机,不知道光标。

发送消息的程序必须使用某些操作系统特定的功能(ncurses 或扫描码)检测箭头键,然后在 telnet 链接上以某种方式对其进行编码,通常通过发送转义符,然后发送一个字符来表示每个箭头。

一个合理的解决方案是假设 vt102 代码 - 第一个流行的字符可寻址终端

编辑:请参阅如何使用 Net::Telnet 模块在 Perl 中发送箭头键?

于 2012-05-08T23:28:13.093 回答