| 導購 | 订阅 | 在线投稿
分享
 
 
 

Windows Sockets:套接字通知

來源:互聯網  2008-06-01 02:02:59  評論

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

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頻道專題,或

本文描述套接字類中的通知函數。這些成員函數都是回調函數,框架調用它們將重要事件通知給套接字對象。通知函數有: 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:轉換字符串 [url=/bbs/detail_1785243.html][img]http://image.wangchao.net.cn/it/1323424164398.gif[/img][/url] 更多內容請看Windows操作系統安全集 Windows操作系統安裝 Windows頻道專題,或
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有