Telnetサーバーはどのようにクライアントと通信しますか?
-
04-07-2019 - |
質問
telnetサーバーに接続してサーバーと通信するC#アプリケーションを作成したい。 telnetサーバーがクライアントに情報を送信する方法を知りたいと思っていました。 Telnet RFC を調べ(スキミング)、入ってくる着信パケットを調べました。サーバーから、まだ少し混乱しています。サーバーがtelnetクライアントでカーソルをどのように動かし、文字の色をどのように変えることができるか例を誰かに教えてもらえますか? (例が最もありがたいです)
更新
追加のVT100リソースを次に示します。
アップデートII
多くの研究と時間をかけて、私が見つけたもの: C#を使用したTelnetプログラミング
解決
カーソルの移動と色の変更は、telnetプロトコルでは行われません。
お使いのtelnetクライアントは端末をエミュレートしています。これはおそらくVT-100バリアントです。カーソルを移動して色を変更するために、サーバーはエミュレートされる端末のタイプに固有のエスケープシーケンス(telnetプロトコルネゴシエーションで送信されるもの)を送信します。
これらのエスケープシーケンスが必要ない場合、telnetプロトコルネゴシエーションでサーバーに「ダム」であると伝えます。ターミナルで十分です。それらが必要な場合(またはサーバーがすべてのユーザーがVT-100を持っていると想定し、常に送信する場合)、VT-100ターミナルエミュレーターを実装する必要があります(または、少なくとも、不要なものを破棄するには十分です)。 / p>
他のヒント
A シンプルなGoogle検索は、C#で記述された多くのオープンソースTelnet(およびその他のネットワークプロトコル)クライアントを明らかにします。ソースコードをダウンロードして、接続ネゴシエーションとコマンドの実装方法を確認できます。
カーソルやテキストの色などの処理に関しては、ターミナルエミュレーションについて説明しています。そのためにはライブラリが必要です。 これは開始するのに適した場所のようです。