0

では、Python で TCP ソケットを作成し、承認するサーバーが承認のために一度に複数のヘッダーを送信する必要があるとします。送信に使用socket.sendallするので、承認ハンドシェイクの応答を待ちます。その後、データが返されるまで待つ必要がありますが、一定時間内にデータが受信されない場合はソケットを閉じないので、これを行うにはどうすればよいですか? これを正しく送信する簡単な方法はありますか? ~~編集~~私の主な質問は、複数行のパケットを送信する方法だと思いますか? :)

4

1 に答える 1

1

タイプ の python ソケットはSOCK_STREAM、関数を使用してsocket.sendall(data)単純に文字列を送信します。はい、データは単なる文字列です。これで、独自のヘッダーと行、およびすべてを作成し、それを文字列に入れて、サーバーに向けてすべてを送信するようにソケットに指示できます。

次に、socket.recv(buffer) を実行します。ここで、buffer はバイト数の整数です。また、Thomas Orozco が言ったように、tcp ソケットは非常に長い時間開いたままになる可能性があるため、サーバーがかなり迅速に応答するようにしてください。

編集: ところで、TCP はトランスポート層プロトコルです。ここでもう少し詳しく読むことができます: http://en.wikipedia.org/wiki/Transport_layer . 簡単に言えば、TCP は、転送するように指示されたものは何でも転送します。Python では、文字列です。

于 2012-11-01T22:16:29.757 に答える