我如何使用ncurses在telnet界面上绘图..?

时间:2012-01-06 18:34:08

标签: ruby screen-scraping telnet ncurses

我正在红宝石中写一个小泥,我需要一些文本框和菜单项(TUI)。客户端通过telnet连接到这个应用程序,我尝试使用NCurses,但无法弄清楚它是如何绘制到一个插槽的IO ...有没有可能的方式我可以开发自己的文本框和菜单小部件,我试过看VT-100 ansi终端转义码。可以编写一些彩色文本...它甚至可以用标准的telnet应用程序创建事件驱动的接口。

2 个答案:

答案 0 :(得分:2)

编写一个常规的ncurses程序/ ruby​​脚本并将其传输到套接字会更容易。

例如。在端口上托管vi

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

mkfifo ncpipe

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

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

telnet 127.0.0.1 800

您可以使用ncurses程序替换vi。

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

答案 1 :(得分:1)

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

http://ascii-table.com/ansi-escape-sequences-vt-100.php#For color

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