注释
MFC 支持 Windows 套接字 1,但不支持 Windows 套接字 2。 Windows 套接字 2 首先随 Windows 98 一起提供,是 Windows 2000 随附的版本。
MFC 提供了两种模型,用于使用 Windows 套接字编写网络通信程序,这些模型体现在两个 MFC 类中。 本文介绍这些模型以及 MFC 套接字支持的更多详细信息。 “套接字”是通信的终结点:应用程序通过该对象与网络中的其他 Windows 套接字应用程序通信。
有关 Windows 套接字的信息,包括套接字概念的说明,请参阅 Windows 套接字:后台。
套接字编程模型
以下类支持这两种 MFC Windows 套接字编程模型:
CAsyncSocket
此类封装 Windows 套接字 API。 CAsyncSocket 适用于了解网络编程的程序员,并希望直接编程到套接字 API 的灵活性,但也希望为通知网络事件提供回调函数的便利。 除了以面向对象的形式打包套接字以用于C++之外,此类提供的唯一附加抽象是将某些与套接字相关的 Windows 消息转换为回调。 有关详细信息,请参阅 Windows 套接字:套接字通知。
CSocket
此类派生自
CAsyncSocket
提供更高级别的抽象,用于通过 MFC CArchive 对象处理套接字。 使用存档的套接字与使用 MFC 的文件序列化协议非常相似。 这使得比CAsyncSocket
模型更易于使用。 CSocket 继承许多成员函数,该CAsyncSocket
函数封装了 Windows 套接字 API;你必须使用其中一些函数并一般了解套接字编程。 但是CSocket
,管理通信的许多方面,你必须自己使用原始 API 或类CAsyncSocket
。 最重要的是,CSocket
提供阻塞(Windows 消息的后台处理),这对同步作CArchive
至关重要。
创建和使用 CSocket
对象 CAsyncSocket
在 Windows 套接字中介绍:将套接字与存档和Windows 套接字配合使用:使用类 CAsyncSocket。
Windows 套接字 DLL
Microsoft Windows作系统提供 Windows 套接字动态链接库(DLL)。 视觉对象C++提供相应的头文件和库以及 Windows 套接字规范。
有关 Windows 套接字的详细信息,请参阅: