各ソケットにはメッセージを送受信できる独自のバッファがありますか?

各ソケットにはメッセージを送受信できる独自のバッファがありますか?

広く使用されているCアプリケーションを開発しています。ソケット

私の疑いは:私が作成した各ソケットに別のソケットからメッセージを送受信できる独自のバッファがありますか?

つまり、メッセージ交換によってソケットが影響を受けますか?間違って

バグとは、メッセージを「意図された」受信者から別のソケットに明示的に送信するためにプログラムコードを書かずに(おそらくバグのある)1つのソケットに送信されたメッセージを別のソケットに「漏らす」ことができるということです。

ベストアンサー1

私が作成する各ソケットには、他のソケットからメッセージを送受信できる独自のバッファがありますか?

はい。

それ以外の場合、ソケットAPIはデフォルトで使用できないため、提案する理由はこれです。

使用しているソケットの種類を指定していないので、明確にすると次のようになります。

  • 各TCP /ストリームソケットには独自の送受信バッファがあります。

    これらのバッファは、バックグラウンドでの再送信、承認管理、再アセンブリなどを処理するために必要です。

  • 各UDP /データグラムソケットには独自の受信バッファがありますが、必ずしも一意で持続的な送信バッファがあるわけではありません。

    永続転送バッファを必要とする再送ロジックはありません。

  • aは、socketpair2つのソケット間でバッファを共有できます(または各方向のバッファ)。

    比較のために、a pipe(ソケットとは異なり)は一方向であるため、通常、2つのファイル記述子間で共有されるバッファは1つだけです。

おすすめ記事