Techioz Blog

Telnet/ssh 経由での nCurses の実装

概要

現在、クライアントからの接続で PTY を生成し、小さな nCurses アプリケーションの出力をクライアントに送信する小さな Telnet サーバーを実装しようとしています。私は Ruby で作業していますが、質問は言語に依存しません。私の使用例では、アプリケーションのユーザーがユーザー アカウントにログインする必要がないため、画面の適切な送信を telnetd などのシステム ツールに委任したくないと考えています。

TCP 接続の場合、テキストの nCurses インターフェイスを Telnet または SSH 経由で送信するための要件は何ですか?クライアント側で画面を更新してアプリケーションを適切にレンダリングするには、どのような種類のバッファリングまたはエンコードが必要ですか?これは明らかに通常の ssh セッション中に処理されますが、どのように行われるのでしょうか?

前もって感謝します。

解決策

TERM、LINES、および COLUMNS 環境変数を設定する必要があります (NVT プロトコルによって正しい値が取得されます)。その後、準備が整い、ncurses アプリケーションを生成するだけです (明らかに stdin/stdout であるため、PTY を使用します)。 (NVT 実装以外では) 文字ストリームをバッファリングしたり、改ざんしたりする必要はありません。