【问题标题】:How do i draw on telnet interface using ncurses ..?我如何使用 ncurses 绘制 telnet 界面 ..?
【发布时间】:2012-02-04 11:15:17
【问题描述】:

我正在用 ruby​​ 编写一个小泥,我需要一些文本框和菜单项 (TUI)。客户端通过 telnet 连接到该应用程序,我尝试使用 NCurses,但无法弄清楚它如何绘制到作为套接字的 IO ... 有什么可能的方法可以开发自己的文本框和菜单小部件,我试过查看 VT-100 ansi 终端转义码。可以写一些彩色文本就可以了……甚至可以用标准的 telnet 应用程序制作事件驱动的接口。

【问题讨论】:

    标签: ruby screen-scraping telnet ncurses


    【解决方案1】:

    编写常规的 ncurses 程序/ruby 脚本并将其通过管道传输到套接字会更容易。

    例如。在端口上托管 vi

    打开终端并以root身份执行这些操作

    mkfifo ncpipe
    
    nc -l -p 800 0<ncpipe |  vi   1>ncpipe 
    

    这在端口 800 上托管 vi 应用程序 打开另一个终端

    telnet 127.0.0.1 800
    

    您可以将 vi 替换为您的 ncurses 程序。

    注意:这是一个非常基本的示例,因为 nc 只处理一个传入连接,然后终止。您将需要其他服务器程序,例如“socat”

    【讨论】:

    • 不过,这肯定只适用于单个连接吗?
    • @Textmode 好吧,他只是用它作为示例来说明可以转发curses 应用程序。可以编写第二个服务器应用程序,为每个用户提供一个新实例
    【解决方案2】:

    NCurses 不了解如何写入 IO::Socket,因为它被设计为写入 STDOUT,因此唯一剩下的方法是 ANSI 转义码也要求使用 ANSI 和 VT-100 将 telnet 从行模式切换到字符模式转义码将有助于开发文本框小部件等 ....

    http://ascii-table.com/ansi-escape-sequences-vt-100.php#颜色

    http://www.faqs.org/rfcs/np.html#TELNET#其他修改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多