次の方法で共有


Windows ソケット : ストリーム ソケット

ここでは、ストリーム ソケットについて説明します。これは、2 種類ある Windows ソケットの 1 つです。 もう 1 つは、データグラム ソケットです。

ストリーム ソケットは、レコード境界のないデータ フローを提供します。双方向することができますバイトのストリーム (アプリケーション全二重です。それすることができます両方送受信ソケットを通じて)。 ストリームでは、シーケンスどおりに非重複データを送ることができます。 "シーケンスどおり" とは、パケットが送出時の順番で配達されることです。■訳文不要■ 非重複" とは、各パケットが 1 回しか配達されないことです。)ストリーム メッセージは必ず受信されるので、大量のデータを扱うときに向いています。

ネットワーク トランスポート層は、適切なサイズのパケットにデータを分解またはグループ化します。 CSocket クラスがデータのパックとアンパックを行います。

ストリームは、明示的な接続に基づいています。ソケット、ソケット B に接続を要求; ソケット B または、接続要求は拒否されます。

電話の通話は、ストリームによく似ています。 普通の状況では、話し手が話した内容は順序どおりに聞き手に届き、重複したり欠落したりすることはありません。 ストリーム ソケットは、任意のサイズの ASCII ファイルまたはバイナリ ファイルを転送できるファイル転送プロトコル (FTP: File Transfer Protocol) などの実装に適しています。

データを必ず伝達しなければならない場合、またはデータのサイズが大きい場合は、データグラム ソケットではなく、ストリーム ソケットの使用をお勧めします。 ストリーム ソケットの詳細については、Windows ソケットの仕様を参照してください。 この仕様は Windows SDK にあります。

ストリーム ソケットを使用した場合、データグラム ソケットを使ってネットワーク上のすべての受信側ソケットにブロードキャストを行うようにデザインされたアプリケーションに比べて、次の点で優れています。

  • ブロードキャスト モデルでは、ネットワーク オーバーフローの問題が発生する可能性があります。

  • 後から採用されたクライアント サーバー モデルの方が、より効率的です。

  • データグラム モデルでは信頼性が低い場合でも、ストリーム モデルでは信頼性の高いデータ転送を行うことができます。

  • 最終的なモデルでは、Unicode と ANSI の両ソケット アプリケーション間の通信機能を CArchive クラスから CSocket クラスに流用できます。

    注意

    CSocket クラスを使う場合は、ストリームを使う必要があります。 ソケット タイプを SOCK_DGRAM と指定すると、MFC のアサーションが失敗します。

参照

概念

MFC における Windows ソケット

Windows ソケット : 予備知識