Windows 套接字:从套接字类派生

本文介绍一些可通过从某一个套接字类派生自己的类来获得的功能。

可以从 CAsyncSocketCSocket 派生自己的套接字类,以便添加自己的功能。 具体而言,这些类提供许多可以替代的虚拟成员函数。 这些函数包括 OnReceiveOnSendOnAcceptOnConnectOnClose。 可以替代派生套接字类中的函数,以利用它们在发生网络事件时提供的通知。 框架调用这些通知回叫函数,以便通知你重要的套接字事件,例如可以开始读取的数据的接收。 有关通知函数的详细信息,请参阅 Windows 套接字:套接字通知

此外,CSocket 类提供 OnMessagePending 成员函数(高级可替代项)。 MFC 调用此函数,同时套接字正在发送基于 Windows 的消息。 可以替代 OnMessagePending 以查找来自 Windows 的特定消息并对其进行响应。

CSocket 中提供的 OnMessagePending 的默认版本在等待阻塞调用完成时检查 WM_PAINT 消息的消息队列。 它调度绘制消息以提高显示质量。 除了执行一些有用操作外,这展示了一种可以自行替代函数的方法。 作为另一个示例,请考虑对以下任务使用 OnMessagePending。 假设在等待网络事务完成时显示一个无模式对话框。 该对话框包含一个“取消”按钮,用户可以使用该按钮取消花费过长时间的阻塞事务。 替代 OnMessagePending 可能会发送与此无模式对话框相关的消息。

OnMessagePending 替代中,返回 TRUE 或从对 OnMessagePending 的基类版本的调用中返回的值。 如果基类版本执行你仍希望完成的工作,请调用该版本。

有关详细信息,请参阅:

另请参阅

MFC 中的 Windows 套接字