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 ソケットの詳細については、次を参照してください: