0

私は現在、TCPソケットでリッスンして送信するプログラムを持っています。

私が抱えている問題は、私がパケットを送信し、時々それがバラバラになることです。したがって、私のリスニングTCPソケットクラスは、最初に入るのはペイロード全体であると考えています。

TCP接続でプログラミングするときに人々が取る典型的なアプローチは何ですか?

4

1 に答える 1

2

最初の部分がペイロード全体であると想定することはできません。すべてを取得するまで、ソケットを読み続ける必要があります。

2つのオプションがあります。

オプション1
メッセージ(データ構造)の終わりをマークします。その後、リスナーはメッセージの終わりマーカーを取得するまで読み続けます。

オプション2
実際のデータを送信する前に、メッセージの長さまたはデータ構造を送信します。その後、リスナーはすべてのバイトを読み取るまで読み取りを続けます。

于 2013-02-07T22:48:20.283 に答える