注
MFC は Windows ソケット 1 をサポートしますが、 Windows ソケット 2 はサポートしていません。 Windows Sockets 2 は最初に Windows 98 に付属しており、Windows 2000 に付属しているバージョンです。
MFC は、2 つの MFC クラスに組み込まれた Windows ソケットを使用してネットワーク通信プログラムを記述するための 2 つのモデルを提供します。 この記事では、これらのモデルについて説明し、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 ソケットの詳細については、次を参照してください。