首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Windows Sockets:自訂套接字類別衍生技巧

     編輯:關於C語言

透過從 CAsyncSocket 或 CSocket 衍生自訂類別,可為套接字擴充專屬功能。兩者均提供豐富的虛擬通知函式供重寫,包含:OnReceive、OnSend、OnAccept、OnConnect、OnClose。框架於關鍵網路事件發生時呼叫這些回調,讓您即時響應(如資料可讀、可寫、連線建立/斷開)。詳細用法請參閱 Windows Sockets:套接字通知 及範例程式 CHATTER、CHATSRVR。

CSocket 專屬:OnMessagePending 進階重寫

CSocket 額外提供 OnMessagePending 虛擬函式。當套接字在同步操作期間抽取 Windows 訊息佇列時,MFC 會呼叫此函式。預設實作會檢查並派送 WM_PAINT 訊息,確保介面重繪不卡頓。開發者可重寫此函式處理特定訊息,常見應用場景:

案例:長時間網路操作中的取消機制

顯示無模式對話框等待網路作業完成,對話框含「取消」按鈕。重寫 OnMessagePending 抽取對話框相關訊息,使用者點擊「取消」即可中斷阻塞操作。

BOOL CMySocket::OnMessagePending() {
    // 處理自訂訊息邏輯
    // 若需保留基類預設行為(如 WM_PAINT 處理),呼叫基類版本
    return CAsyncSocket::OnMessagePending(); // 或 CSocket::OnMessagePending()
}

重寫時應回傳 TRUE 或基類版本回傳值,確保訊息迴圈正常運作。

相關主題

  • Windows Sockets:使用帶存檔的套接字
  • Windows Sockets:使用 CAsyncSocket 類別
  • Windows Sockets:阻塞
  • Windows Sockets:位元組順序
  • Windows Sockets:字串轉換
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved