Telnet は生の TCP 接続とどう違うのか 質問する

Telnet は生の TCP 接続とどう違うのか 質問する

Python スクリプトを使用してサーバーにコマンドを送信しようとしています。サーバー上でソケット接続が確立されていることは確認できます。しかし、送信しているコマンドは、サーバーを通過していないようです (サーバーはソケットで読み取りを行います)。サーバーは現在、telnet コマンド インタープリターをサポートしています。つまり、コマンド アドレスとポートに telnet すると、文字列コマンドの送信を開始できます。私の質問は、telnet を使用する場合とは対照的に、TCP ソケットを介して文字列を送信することと根本的に異なる点があるかどうかです。私は、raw ソケットと Twisted フレームワークの両方を使用しました。

ベストアンサー1

Telnet は、通信チャネルに関する制御情報を渡す方法です。これは、行バッファリング、文字エコーなどを定義し、接続の開始時 (およびまれにセッション中) に一連の will/wont/do/dont メッセージを通じて実行されます。

おそらく、サーバーのドキュメントでは、その意味は説明されていません。代わりに、"Telnet" などのプログラムを使用してポートへの TCP ソケットを開き、サーバー上のコマンド インタープリターと対話できるという意味であると考えられます。

Telnet プログラムが接続すると、通常はこれらの制御メッセージをリッスンしてから同様の応答を返すため、実際には Telnet プロトコルを使用しない TCP/ソケット接続で動作し、単純な生のパイプに戻ります。サーバーは、すべての文字エコー、行バッファリングなどを実行する必要があります。

だからあなたのこの場合、サーバーは Telnet エスケープ シーケンスのない生の TCP ストリームを使用している可能性が高いため、違いはありません。

おすすめ記事