2012-01-06 16 views
3

私は、いくつかのテキストボックスとメニュー項目(TUI)が必要なルビーに小さな泥を書いています。クライアントはtelnetでこのアプリケーションに接続しますが、NCursesを使ってみましたが、ソケットであるIOにどのように描画できるのかわかりません。テキストボックスとメニューウィジェットを開発できる方法はありますか?私はVT-100 ansiターミナルのエスケープコードを見てみました。いくつかの色のついたテキストを書くことができます...標準的なtelnetアプリケーションとイベント駆動型インターフェースを作ることさえ可能です。どのようにncurses ..を使ってtelnetインターフェイスで描画しますか?

答えて

2

通常のncursesプログラム/ ruby​​スクリプトとパイプをソケットに書き込む方が簡単です。

例えば、

は、ターミナルを開き、ルート

mkfifo ncpipe 

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

としてこれらを実行し、これはポート800 でVIアプリケーションをホストポート上でVIをホストすることはあなたのncursesベースのプログラムでVIを置き換えることができ、別の端末

telnet 127.0.0.1 800 

を開きます。

注:これは非常に基本的な例です.NCは着信接続を1つしか処理せずに終了するためです。 "socat"のような他のサーバプログラムが必要です

+0

確かにこれは単一の接続でしか機能しませんか? – Textmode

+0

@Textmode彼はcursesアプリケーションを転送できることを示すために例として使っています。新しいインスタンスを各ユーザに提供する第2のサーバアプリケーションを書くことができる – Piccolo

1

NCursesはSTDOUTに書き込むように設計されているので、IO :: Socketに書き込む方法を理解していないので、残った方法だけがANSIエスケープコードでもあり、テキストボックスウィジェットなどを開発するのに役立つだろうANSIとVT-100エスケープコードを使って意志の文字モード....その他の修正#for色

http://www.faqs.org/rfcs/np.html#TELNETについては

http://ascii-table.com/ansi-escape-sequences-vt-100.php#へ。

関連する問題