0

たとえば、send (linux C/C++) で 2 つの個別のメッセージを送信し、poll(2/3) コールバックでそれを読み取った場合、2 つの書き込み (パケット) が読み取られる可能性があるかどうかを尋ねるために立ち寄りました。またはメッセージごとに個別のポーリング イベントがありますか? IOCTL を使用して、読み取る保留中のデータのサイズを確認していることに注意してください。では、それは常に 1 つのメッセージのサイズですか、それともたまたま複数のメッセージのサイズになる可能性がありますか?

編集: ソケットの種類は SOCK_STREAM です。

4

1 に答える 1

1

STREAM ソケット (DGRAM ソケットを使用していないと思いますか?) では、メッセージが結合されたり (ストリームにメッセージ境界がありません)、単一のメッセージが複数の部分に分割されたりします。

通信の信頼性を高めるには、各パケットにその長さのプレフィックスを付けます。

于 2013-05-13T15:13:01.227 に答える