【问题标题】:How to get arrow key from socket如何从套接字获取箭头键
【发布时间】:2012-05-09 07:28:13
【问题描述】:

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

【问题讨论】:

  • 当你得到答案时,你应该点击正确解决你的问题的答案的复选标记(在答案分数下)。这既是为了奖励帮助您的人,也是为了引导未来的访问者找到正确的解决方案。
  • 你的插座远端连接了什么样的终端?你知道按下箭头键时它发送的字节序列是什么吗?
  • @user1339063 - twain249 和 Shahbaz 想说的是:阅读this 问题及其答案。这样做完全由您自行决定。如果答案不能让你满意,请不要接受。祝你好运!
  • 我没有;我在控制台上看不到它

标签: c


【解决方案1】:

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

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

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

编辑:见How do I send an arrow key in Perl using the Net::Telnet module?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-12-04
    相关资源
    最近更新 更多