MFC 中的 Windows 套接字
注意
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
的同步操作至关重要。
Windows 套接字:使用带有存档的套接字和 Windows 套接字:使用 CAsyncSocket 类中介绍了如何创建和使用 CSocket
和 CAsyncSocket
对象。
Windows 套接字 DLL
Microsoft Windows 操作系统提供 Windows 套接字动态链接库 (DLL)。 Visual C++ 提供相应的头文件和库以及 Windows 套接字规范。
有关 Windows 套接字的详细信息,请参阅: