套接字類別提供五個核心通知回調函式,框架於關鍵網路事件發生時自動呼叫,供開發者實作自訂響應邏輯:
| 通知函式 | 觸發時機 | 建議處理 |
|---|---|---|
| OnReceive | 接收緩衝區有資料可讀 | 呼叫 Receive 讀取資料 |
| OnSend | 發送緩衝區可寫入 | 呼叫 Send 發送資料 |
| OnAccept | 監聽套接字有掛起連線請求 | 呼叫 Accept 接受連線 |
| OnConnect | 連線嘗試完成(成功或失敗) | 檢查錯誤碼,後續處理 |
| OnClose | 對端套接字已關閉 | 清理資源,關閉本端套接字 |
注意: OnOutOfBandData 通知接收端有「帶外資料」(Out-of-Band Data)到達。帶外通道為每對連線流式套接字提供的邏輯獨立通道,通常用於傳送緊急資料。MFC 支援帶外資料,但建議 CSocket 使用者另建套接字傳遞此類資料,CAsyncSocket 進階使用者可視需求使用。詳細規格請參閱 Platform SDK 文件。
通知函式非強制呼叫特定 API,您可用於追蹤進度、記錄 TRACE 訊息、更新 UI 等。實作範例請參考 MFC 範例 CHATTER、CHATSRVR。
執行 Receive/Send 等同步操作時,CSocket 進入同步狀態,其他套接字的通知將排隊等候。僅當當前同步操作完成、套接字恢復異步狀態時,排隊通知才會被處理。此機制避免重入與遞迴問題。
重要: CSocket 中 OnConnect 永不被呼叫。連線由 Connect 同步完成,完成時直接返回結果(成功/錯誤)。連線通知處理為 MFC 內部實作細節。