MFC 中的 Windows Sockets
注意
MFC 支援 Windows Sockets 1,但不支援 Windows Sockets 2 。 Windows Sockets 2 首先隨附于 Windows 98,且是 Windows 2000 隨附的版本。
MFC 提供兩個模型來撰寫使用 Windows Sockets 的網路通訊程式,這些模型包含在兩個 MFC 類別中。 本文說明這些模型,並進一步詳細說明 MFC 通訊端支援。 「通訊端」是通訊的端點:一個物件,您的應用程式會透過該物件與網路上的其他 Windows Sockets 應用程式通訊。
如需 Windows 通訊端的相關資訊,包括通訊端概念的說明,請參閱 Windows 通訊端:背景 。
通訊端程式設計模型
下列類別支援這兩種 MFC Windows Socket 程式設計模型:
CAsyncSocket
這個類別會封裝 Windows Sockets API。 CAsyncSocket 適用于瞭解網路程式設計的程式設計人員,而且想要直接將程式設計彈性提供給通訊端 API,但也想要方便回呼函式來通知網路事件。 除了以物件導向形式封裝通訊端以用於 C++ 之外,這個類別所提供的唯一額外的抽象概念是將特定通訊端相關的 Windows 訊息轉換成回呼。 如需詳細資訊,請參閱 Windows 通訊端:通訊端通知 。
CSocket
這個類別衍生自
CAsyncSocket
,提供較高層級的抽象概念,以透過 MFC CArchive 物件處理通訊端。 使用具有封存的通訊端非常類似使用 MFC 的檔案序列化通訊協定。 這可讓您比CAsyncSocket
模型更容易使用。 CSocket 會從CAsyncSocket
封裝 Windows Sockets API 繼承許多成員函式;您必須使用其中一些函式,並一般瞭解通訊端程式設計。 但是CSocket
,管理您自己必須使用原始 API 或 類別CAsyncSocket
進行的許多通訊層面。 最重要的是,CSocket
提供封鎖功能(使用 Windows 訊息的背景處理),這對 同步作業CArchive
至關重要。
建立和使用 CSocket
和 CAsyncSocket
物件描述于 Windows 通訊端:搭配封存 使用通訊端和 Windows 通訊端:使用類別 CAsyncSocket 。
Windows Sockets DLL
Microsoft Windows 作業系統提供 Windows Sockets 動態連結程式庫 (DLL)。 Visual C++ 提供適當的標頭檔與程式庫和 Windows 通訊端規格。
如需 Windows 通訊端的詳細資訊,請參閱: