MFC における Windows ソケット
注意
MFC (Microsoft Foundation Class) は、Windows Sockets 1 をサポートしていますが、Windows Sockets 2 はサポートしていません。 Windows Sockets 2 は、Windows 98 から同梱されるようになり、Windows 2000 で提供されています。
MFC には、Windows ソケットを使用するネットワーク通信プログラムを記述するためのモデルが 2 つあり、2 つの MFC クラスとして実現されています。 ここでは、この 2 つのモデルと MFC ソケットのサポートの詳細について説明します。 ソケットは通信のエンドポイントです。アプリケーションを他の Windows ソケット アプリケーションとネットワーク経由で通信に使用するオブジェクト。
Windows ソケットは、ソケットの概念の説明を含む情報を参照してくださいWindows ソケット:背景。
ソケット プログラミング モデル
MFC における 2 つの Windows ソケット プログラミング モデルは、以下のクラスによってサポートされます。
CAsyncSocket
このクラスには、Windows ソケット API がカプセル化されています。 CAsyncSocket は、ネットワークのプログラミング知識があるプログラマ用です。CAsyncSocket を使うと、ソケット API を直接プログラミングできるほか、ネットワーク イベント通知用のコールバック関数も使用できます。 このクラスによって提供される抽象化は、ソケットを C++ で使用できるようにオブジェクト指向形式としてパッケージ化する以外には、ソケット関連の特定の Windows メッセージをコールバックに変換する機能だけです。 詳細についてを参照してくださいWindows ソケット:ソケット通知。
CSocket
CAsyncSocket からの派生クラスであるこのクラスは、MFC の CArchive オブジェクトを使ってソケットを操作する高度な抽象化を実現しています。 アーカイブでのソケットの使用方法は、MFC のファイル シリアル化プロトコルの使用方法とよく似ています。 そのため、CAsyncSocket モデルよりも簡単に使用できます。 CSocket のメンバー関数の多くは、Windows ソケット API をカプセル化した CAsyncSocket から継承したものです。したがって、このクラスの関数も一部使う必要があり、ソケットのプログラミング方法に関する全般的な知識が必要です。 CSocket を使うと、多くの通信処理が自動的に処理されるので、API をそのまま使った場合または CAsyncSocket クラスを使った場合に比べて手間がかかりません。 特に、CArchive の同期動作に不可欠のブロッキングが、CSocket では Windows メッセージのバックグラウンド処理によって行われます。
作成と使用CSocketとCAsyncSocketオブジェクトで説明Windows ソケット:アーカイブとソケットを使用して と Windows ソケット:CAsyncSocket クラスを使用して。
Windows ソケット DLL
Microsoft Windows オペレーティング システムでは、Windows ソケットのダイナミック リンク ライブラリ (DLL: Dynamic Link Library) が提供されています。 Visual C++ は、該当するヘッダー ファイルとライブラリ、および Windows ソケット仕様を提供します。
注意
Windows NT および Windows 2000 では、16 ビット アプリケーション用の Windows ソケットは WINSOCK.DLL によってサポートされます。 32 ビット アプリケーションの場合は、WSOCK32.DLL によってサポートされます。 16 ビットでも 32 ビットでも提供される API は同じですが、32 ビット版のパラメーターは 32 ビットに拡張されています。 Win32 では、スレッドの安全性も保証されます。
Windows ソケットの詳細については、次のトピックを参照してください。