本文說明您可以透過從某個套接字類別衍生自己的類別來獲得的一些功能。
您可以從 CAsyncSocket 或 CSocket 衍生自己的套接字類別,以新增自己的功能。 特別是,這些類別會提供一些您可以覆寫的虛擬成員函式。 這些函式包括 OnReceive、 OnSend、 OnAccept、 OnConnect 和 OnClose。 您可以覆寫衍生套接字類別中的函式,以利用它們在發生網路事件時所提供的通知。 架構會呼叫這些通知回呼函式來通知您發生重要的 socket 事件,例如接收到可以開始讀取的數據。 如需通知函式的詳細資訊,請參閱 Windows 套接字:套接字通知。
此外,類別 CSocket 會提供 OnMessagePending 成員函式(進階可覆寫)。 MFC 會在套接字處理 Windows 型訊息時呼叫此函式。 您可以覆寫 OnMessagePending 以尋找來自 Windows 的特定訊息並加以回應。
類別OnMessagePending中提供的預設版本CSocket會在等候封鎖呼叫完成時,檢查訊息佇列中的WM_PAINT訊息。 它會分派繪製訊息以改善顯示品質。 除了執行一些有用的工作之外,這說明了一種您可以自行重寫函式的方式。 另一個範例,請考慮使用 OnMessagePending 來執行下列工作。 假設您在等候網路交易完成時顯示一個無模式對話框。 對話框包含一個 [取消] 按鈕,用戶可用來取消花費太久的封鎖交易。 您的 OnMessagePending 覆寫可能會提取與此無模式對話框相關的訊息。
在您的 OnMessagePending 覆寫中,傳回 TRUE 或呼叫基類版本的 OnMessagePending 並傳回其結果。 如果基類版本執行您仍想要完成的工作,請呼叫基類版本。
如需詳細資訊,請參閱: