Windows Sockets:套接字通知

本文描述套接字類中的通知函數。這些成員函數都是回調函數,框架調用它們將重要事件通知給套接字對象。通知函數有:

OnReceive:通過調用 Receive 通知此套接字緩沖區中有需要檢索的數據。

OnSend:通過調用 Send 通知此套接字現在可以發送數據。

OnAccept:通過調用 Accept 通知此偵聽套接字可以接受挂起的連接請求。

OnConnect:通知此連接套接字其連接嘗試已完成:可能成功,也可能存在錯誤。

OnClose:通知此套接字它連接的套接字已關閉。

注重: 一個附加的通知函數是 OnOutOfBandData。此通知告訴接收套接字發送套接字有“帶外”數據要發送。帶外數據是邏輯上獨立的通道,與每一對已連接的流式套接字關聯。帶外通道通常用于發送“緊急”數據。MFC 支持帶外數據。使用 CAsyncSocket 類的高級用戶可能需要使用帶外通道,但 CSocket 類的用戶最好不要使用它。更簡便的方法是創建另一個套接字來傳遞這種數據。有關帶外數據的更多信息,請參見 Platform SDK 中的 Windows Sockets 規範。

假如從 CAsyncSocket 類派生類,則必須爲應用程序感愛好的網絡事件重寫通知函數。假如從 CSocket 類派生類,則可以選擇是否重寫感愛好的通知函數。也可以使用 CSocket 自身,在此情況下,通知函數默認不執行任何操作。

這些函數都是可重寫的回調函數。 CAsyncSocket 和 CSocket 將消息轉換成通知,但假如希望使用通知函數,則必須實現它們的響應方式。當套接字被通知有感愛好的事件(如存在要讀取的數據)時,調用通知函數。

MFC 調用通知函數以答應您在套接字被通知時自定義其行爲。例如,您可能從 OnReceive 通知函數調用 Receive ,即,當獲得有要讀取的數據的通知時,可調用 Receive 讀取該數據。這種方法不是必需的,但它是一個有效的方案。另一種辦法是,可以使用通知函數來跟蹤進度、打印 TRACE 消息等。

可以通過在派生的套接字類中重寫通知函數並提供實現來利用這些通知。有關實現示例,請參見 MFC 示例 CHATTER 和 CHATSRVR 中的通知函數重寫。

在如接收或發送數據的操作過程中, CSocket 對象變爲同步。在同步狀態中,當前套接字等待它想要的通知的同時,對應其他套接字的通知都排隊等候。(例如,在 Receive 調用過程中,套接字想要讀取通知)。一旦套接字完成其同步操作並再次變爲異步時,其他套接字才能開始接收排隊的通知。

注重: 在 CSocket 中,永遠都不調用 OnConnect 通知函數。對于連接,則調用 Connect ,它將在連接完成時返回(成功或者錯誤)。如何處理連接通知是 MFC 實現的細節。

有關每個通知函數的具體信息,請參見“MFC 參考”中 CAsyncSocket 類下的該函數。有關 MFC 示例的源代碼和信息,請參見 MFC 示例。

有關更多信息,請參見:

Windows Sockets:使用 CAsyncSocket 類

Windows Sockets:從套接字類派生

Windows Sockets:帶存檔的套接字的工作方式

Windows Sockets:阻塞

Windows Sockets:字節排序

Windows Sockets:轉換字符串

Windows Sockets:套接字通知
更多內容請看Windows操作系統安全集 Windows操作系統安裝 Windows頻道專題,或

Windows Sockets:背景知識
本文介紹 Windows Sockets 的性質和用途。其他內容還包括: 定義術語“套接字”。 描述 SOCKET 句柄數據類型。 描述套接字的用途。 ...查看完整版>>Windows Sockets:背景知識
 
Windows Sockets:帶存檔的套接字的工作方式
本文解釋如何組合 CSocket 對象、CSocketFile 對象和 CArchive 對象以簡化通過 Windows 套接字發送和接收數據。...查看完整版>>Windows Sockets:帶存檔的套接字的工作方式
 
Windows Sockets:轉換字符串
本文以及另外兩篇相關文章解釋 Windows Sockets 編程方面的一些問題。本文介紹轉換字符串。其他問題在 Windows Sockets:阻塞和 Windows Sockets:字節排序中介紹。...查看完整版>>Windows Sockets:轉換字符串
 
Windows Sockets 示例列表
下列 MFC 示例程序闡釋了 Windows Sockets 功能: CHATTER CHATTER 是一個 Windows 套接字客戶端示例應用程序。它是一個具有拆分窗口的單文檔界面 (SDI) 應用程序,答應用戶將消息發送到討論服務器 (CHATSRVR),討論...查看完整版>>Windows Sockets 示例列表
 
Windows Sockets:端口和套接字地址
本文介紹 Windows Sockets 中使用的術語“端口”和“地址”。端口端口標識唯一的進程,一個進程可以有一個服務。在當前的上下文中,端口與支持 Windows Sockets 的應用程序關聯。之所以關聯,是爲了唯一標識每個 Win...查看完整版>>Windows Sockets:端口和套接字地址
 
Windows Sockets 網絡編程(三) —— WINDOWS SOCKETS 1.1 程序設計
Windows Sockets 網絡編程(三) —— WINDOWS SOCKETS 1.1 程序設計 作者: 一、簡介 WINDOWS SOCKETS 是從 Berkeley Sockets 擴展而來的,其在繼承 Berkeley Sockets 的基礎上...查看完整版>>Windows Sockets 網絡編程(三) —— WINDOWS SOCKETS 1.1 程序設計
 
Windows Sockets API實現網絡異步通訊
[文章信息] 作者:信息産業部電子第二十二研究所青島分所郎銳[文章導讀] 本文對如何使用面向連接的流式套接字實現對網卡的編程以及如何實現異步網絡通訊等問題進行了討論與闡述 ...查看完整版>>Windows Sockets API實現網絡異步通訊
 
[收藏]Windows Sockets 2.0:使用完成端口高性能,可擴展性Winsock服務程序
Windows Sockets 2.0:使用完成端口高性能,可擴展性Winsock服務程序 翻譯說明: 完成端口基本上公認爲一種在windows服務平台上比較成熟和高效的IO方法,理解和編寫程序都不是很困難。目前我正在進行這方面的實踐,...查看完整版>>[收藏]Windows Sockets 2.0:使用完成端口高性能,可擴展性Winsock服務程序
 
Windows Sockets 網絡編程(三)
來源:Windows Sockets 網絡編程(三) —— WINDOWS SOCKETS 1.1 程序設計作者: 一、簡介WINDOWS SOCKETS 是從 Berkeley Sockets 擴展而來的,其在繼承 Berkeley Sockets 的基礎上,又進行了新的擴充。這些...查看完整版>>Windows Sockets 網絡編程(三)
 
 
回到王朝網路移動版首頁