我目前正在尝试实现一个小型 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/