本文介绍一些可以通过从其中一个套接字类派生自己的类获得的功能。
可以从 CAsyncSocket 或 CSocket 派生自己的套接字类,以添加自己的功能。 具体而言,这些类提供许多可以重写的虚拟成员函数。 这些函数包括 OnReceive、 OnSend、 OnAccept、 OnConnect 和 OnClose。 可以重写派生套接字类中的函数,以利用它们在发生网络事件时提供的通知。 框架调用这些通知回调函数来通知重要套接字事件,例如可以开始读取的数据的接收。 有关通知函数的详细信息,请参阅 Windows 套接字:套接字通知。
此外,类 CSocket
提供 OnMessagePending 成员函数(高级可重写)。 MFC 在套接字正在泵送基于 Windows 的消息时调用此函数。 你可以重写 OnMessagePending
以查找来自 Windows 的特定消息并对其进行响应。
类CSocket
中提供的默认版本OnMessagePending
在等待阻止调用完成时检查消息队列中的WM_PAINT消息。 它调度消息以提高显示质量。 除了做一些有用的事情之外,这还说明了一种方法,你可以自行替代函数。 作为另一个示例,请考虑使用以下 OnMessagePending
任务。 假设在等待网络事务完成时显示无模式对话框。 该对话框包含一个“取消”按钮,用户可以使用该按钮取消耗时太长的阻止事务。 替代 OnMessagePending
可能会泵送与此无模式对话框相关的消息。
在重写中 OnMessagePending
,返回 TRUE 或从对基类版本的 OnMessagePending
调用返回 。 如果基类版本执行仍要完成的工作,请调用基类版本。
有关详细信息,请参见: