ruby - 通过 telnet/ssh 实现 nCurses

标签 ruby telnet ncurses curses tty

我目前正在尝试实现一个小型 telnet 服务器,该服务器在来自客户端的连接上生成 PTY,并将小型 nCurses 应用程序的输出传输到客户端。我正在使用 ruby 工作,但问题与语言无关。我的用例不要求应用程序的用户登录用户帐户,因此我不希望将屏幕的正确传输委托(delegate)给 telnetd 等系统工具。

给定 TCP 连接,通过 telnet 或 ssh 传输文本 nCurses 接口(interface)有哪些要求?为了确保客户端的屏幕刷新正确呈现应用程序,需要哪些类型的缓冲或编码?这显然是在典型的 ssh session 期间处理的,但是它是如何完成的?

提前致谢。

最佳答案

您需要设置 TERM、LINES 和 COLUMNS 环境变量(您可以通过 NVT protocol 获得正确的值)。然后您就可以开始生成一个 ncurses 应用程序(显然,您的 PTY 是 stdin/stdout)。您不需要缓冲或以其他方式篡改字符流(NVT 实现中除外)。

关于ruby - 通过 telnet/ssh 实现 nCurses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334827/

相关文章:

Ruby:如何使用单个命令运行文件夹中的所有单元测试?

javascript - Rails 4 ExecJS::Listings#index 中的程序错误

linux - 在一台机器上模拟telnet通信

ruby-on-rails - 如何测试RuntimeError在Ruby中正确使用字符串插值?

ruby-on-rails - 在 Rails (3.0.7) 中测试片段创建和过期片段

java - 如何创建匿名 Python telnet 连接?

java - Http Post 不发布数据

python - OSX iTerm2 可以将鼠标与 python-ncurses 一起使用,但不能与 C 中的curses一起使用

vim - 编译 vim 时无法链接 ncurses

c++ - ncurses:奇怪的行格式