本文描述通過從套接字類派生您自己的類所能獲得的一些功能。
可以從 CAsyncSocket 或 CSocket 派生您自己的套接字類,從而添加您自己的功能。具體說來,這些類提供了大量可以重寫的虛擬成員函數,其中包括:OnReceive、OnSend、OnAccept、OnConnect 和 OnClose。可以重寫派生套接字類中的函數,利用它們在網絡事件發生時提供的通知。框架調用這些通知回調函數來通知您重要的套接字事件,如接收到可以開始讀取的數據。有關通知函數的更多信息,請參見 Windows Sockets:套接字通知。有關重寫通知函數的說明,請參見示例應用程序 CHATTER 和 CHATSRVR。
另外, CSocket 類提供 OnMessagePending 成員函數(一個高級的可重寫函數)。當套接字抽取基於 Windows 的消息時,MFC 調用此函數。可以重寫 OnMessagePending 以查找來自 Windows 的特定消息並響應這些消息。
CSocket 類中提供的 OnMessagePending 默認版本在等待阻塞調用完成時,檢查 WM_PAINT 消息的消息隊列。它調度繪畫消息以提高顯示質量。除執行一些有用的操作外,這還說明了一種您可以自己重寫此函數的方法。作為另一個示例,可以考慮使用 OnMessagePending 執行下面的任務。假設您在等待網絡事務完成時顯示一個無模式對話框。此對話框包含一個“取消”按鈕,用戶可用該按鈕取消耗時過長的阻塞事務。重寫
OnMessagePending
可能抽取與該無模式對話框相關的消息。
在
OnMessagePending
重寫中,將 TRUE 或調用的返回值返回給 OnMessagePending 的基類版本。如果此基類版本執行您仍希望執行的工作,則調用此基類版本。
有關更多信息,請參見: