pythonスクリプトを使用してサーバーにコマンドを送信しようとしています。サーバー上でソケット接続が確立されているのがわかります。しかし、送信しているコマンドは、 (サーバーはソケットで読み取りを行います。)サーバーは現在telnetコマンドインタープリターをサポートしています。つまり、コマンドのアドレスとポートにtelnetすると、文字列コマンドの送信を開始できます。私の質問は、文字列の送信とは根本的に異なるものはありますか? telnetを使用するのではなく、tcpソケットを使用して、Twistedフレームワークとrawソケットの両方を使用しました。
Telnetは、通信チャネルに関する制御情報を渡す方法です。これは、ラインバッファリング、文字エコーなどを定義し、接続の開始時(およびまれに、セッション中)の一連のwill/wont/do/dontメッセージを通じて行われます。
それはおそらくあなたのサーバーのドキュメントが意味することではありません。代わりに、「Telnet」などのプログラムを使用してポートにTCPソケットを開き、サーバー上のコマンドインタープリターとやり取りできることを意味します。
Telnetプログラムが接続すると、通常、これらの制御メッセージをリッスンしてから実際に応答するため、Telnetプロトコルを実際に使用しないTCP /ソケット接続で機能し、単純な生のパイプに戻ります。サーバーはすべての文字エコー、行バッファリングなどを実行する必要があります。
したがってyourの場合、サーバーは生のTCPストリームをtelnetエスケープシーケンスなしで使用している可能性が高いため、違いはありません。
Telnetはアプリケーションレイヤープロトコルであり、TCPはトランスポート層プロトコル。TelnetusesTCP=データを送信するために使用します。これは、 TelnetおよびTCP。
Telnetの Wikipediaページ から
...ユーザーデータは、Telnet制御情報と共に帯域内に散在しています...
したがって、あなたの質問に答えるために、はい、Telnetはrawソケットとは異なります。
RFC 854 実装を試みたい場合、または既存のpythonクライアントを使用したい場合は telnetlib を使用できます。 。