我目前正在尝试实现一个小型 telnet 服务器,该服务器在客户端的连接上生成 PTY,并将小型 nCurses 应用程序的输出传输到客户端。我正在使用红宝石工作,但问题与语言无关。我的用例不要求应用程序的用户登录用户帐户,因此我不希望将屏幕的正确传输委托给 telnetd 等系统工具。
给定 TCP 连接,通过 telnet 或 ssh 传输文本 nCurses 接口有哪些要求?为了确保客户端的屏幕刷新正确呈现应用程序,需要哪些类型的缓冲或编码?这显然是在典型的 ssh 会话期间处理的,但是它是如何完成的?
提前致谢。
您需要设置 TERM、LINES 和 COLUMNS 环境变量(您可以通过 NVT 协议获得正确的值)。然后您就可以开始生成一个 ncurses 应用程序(显然,您的 PTY 是 stdin/stdout)。您不需要缓冲或以其他方式篡改字符流(NVT 实现除外)。