MFC における Windows ソケット

Note

MFC では Windows ソケット 1 がサポートされていますが、 Windows ソケット 2 はサポートされていません。 Windows ソケット 2 は最初に Windows 98 に同梱されており、Windows 2000 に含まれるバージョンです。

MFC には、Windows ソケットとネットワーク通信プログラムを作成するための2つのモデルが用意されており、2 つの MFC クラスに組み込まれています。 この記事では、これらのモデルについて説明し、MFC ソケットのサポートについて詳しく説明します。 "ソケット" は通信のエンドポイントであり、アプリケーションがネットワーク経由で他の Windows ソケット アプリケーションと通信するために使用されるオブジェクトです。

ソケットの概念の説明など、Windows ソケットの詳細については、「Windows ソケット: バックグラウンド」を参照してください。

ソケット プログラミング モデル

2 つの MFC Windows ソケット プログラミング モデルは、次のクラスによってサポートされています:

  • CAsyncSocket

    このクラスは、Windows ソケット API をカプセル化します。 CAsyncSocket は、ネットワーク プログラミングについて理解しており、ソケット API に直接プログラミングする柔軟性を必要としているが、ネットワーク イベントの通知にコールバック関数の利便性を必要としているプログラマーを対象としています。 C++ で使用するためにオブジェクト指向の形式でソケットをパッケージ化する以外に、このクラスが提供する唯一の抽象化は、特定のソケットに関連する Windows メッセージをコールバックに変換することです。 詳細については、「Windows ソケット: ソケット通知」を参照してください。

  • CSocket

    CAsyncSocket から派生したこのクラスは、MFC の CArchive オブジェクトを介してソケットを操作するための、より高いレベルの抽象化を提供します。 アーカイブでソケットを使用することは、MFC のファイル シリアル化プロトコルを使用する場合とよく似ています。 これにより、CAsyncSocket モデルよりも使いやすくなります。 CSocket は、Windows ソケット API をカプセル化する CAsyncSocket の多くのメンバー関数を継承します。これらの関数のいくつかを使用し、一般的にソケット プログラミングについて理解する必要があります。 しかし CSocket では、未加工の API またはクラス CAsyncSocket を使用して自分で行う必要がある通信の多くの側面を管理します。 最も重要なのは、CSocket が (Windows メッセージをバックグラウンドで処理する) ブロッキングを提供することです。これは、CArchive の同期操作に不可欠です。

CSocket オブジェクトと CAsyncSocket オブジェクトの作成と使用 の詳細については、「Windows ソケット: アーカイブにソケットを使用する」および「Windows ソケット: クラス CAsyncSocket を使用する」を参照してください。

Windows ソケット DLL

Microsoft Windows オペレーティング システムには、Windows ソケット ダイナミックリンク ライブラリ (DLL) が用意されています。 Visual C++ には、適切なヘッダーファイルとライブラリ、および Windows ソケット仕様が用意されています。

Windows ソケットの詳細については、次を参照してください:

関連項目

Windows ソケット