間的依賴性。所以你隨時可以發包,也隨時可能收到包。傳送、接收
函式都是異步非阻塞的,頃刻就能完成,所以收發交錯進行著,你可
以一直工作,保持很高的效率。
但是,正因為傳送、接收函式都是異步非阻塞的,所以僅調用它們並
不能保障傳送或接收的完成。
例如傳送函式Send,調用它可能有3種結果:錯誤、部分完成、全部完
成。其中錯誤又分兩種情況:一種是由各種網路問題導致的失敗,你
需要馬上決定是放棄本次操作,還是啟用某種對策;另一種是“忙”,
你實際上不用馬上理睬。你需要調用GetLastError來判斷是哪種情況,
GetLastError返回WSAEWOULDBLOCK,代表“忙”,為什麼當你Send得
到WSAEWOULDBLOCK卻不用理睬呢?因為CAsyncSocket會記得你的Send
WSAEWOULDBLOCK了,待傳送的數據會寫入CAsyncSocket內部的傳送緩
沖區,並會在不忙的時候自動調用OnSend,傳送內部緩衝區裡的數據。
同樣,如果Send只完成了一部分,你也不需要理睬,尚未傳送的數據
同樣會寫入CAsyncSocket內部的傳送緩衝區,並在適當的時候自動調
用OnSend完成傳送。
與OnSend協助Send完成工作一樣,OnRecieve、OnConnect、OnAccept
也會分別協助Recieve、Connect、Accept完成工作。這一切都通過消
息機制完成:
在你使用CAsyncSocket之前,必須調用AfxSocketInit初始化WinSock
環境,而AfxSocketInit會創建一個隱藏的CSocketWnd對象,由於這個
對象由CWnd派生,因此它能夠接收Windows訊息。一方面它會接受各個
CAsyncSocket的狀態報告,另一方面它能捕捉系統發出的各種SOCKET
事件。所以它能夠成為高層CAsyncSocket對象與WinSock底層之間的
橋樑:例如某CAsyncSocket在Send時WSAEWOULDBLOCK了,它就會傳送
一條訊息給CSocketWnd作為報告,CSocketWnd會維護一個報告登記表,
當它收到底層WinSock發出的空閒訊息時,就會檢索報告登記表,然後
直接調用報告者的OnSend函式。所以前文所說的CAsyncSocket會自動
調用OnXxx,實際上是不對的,真正的調用者是CSocketWnd——它是
一個CWnd對象,運行在獨立的執行緒中。
相關詞條
-
CAsyncSocket異步機制
環境,而AfxSocketIn 一條訊息給CSocketWn d作為報告,CSocketWn
-
sockets
程式設計師能充分地利用Windows訊息驅動機制進行編程...和伺服器連線,而伺服器提供某種機制來通知用戶使用另一連線埠。因此...的類CAsyncSocket和CSocket,CAsyncSocket提供...
介紹 關係 -
Winsock
CAsyncSocket和CSocket,CAsyncSocket提供基於異步通信的套接口封裝...Windows訊息驅動機制進行編程。Windows Sockets規範本意在於...應用程式通常用與"時間"服務對應的連線埠來和伺服器連線,而伺服器提供某種機制...
規範 套接口 模型 數據包 函式關係 -
網路編程實用教程(第3版)
CAsyncSocket類 1105.1.1 使用CAsyncSocket類的一般步驟 1105.1.2 創建CAsyncSocket類對象 1115.1.3 關於CAsyncSocket類可以接受並處理的訊息事件 1125.1.4...
基本信息 圖書簡介 目錄 -
非阻塞模式
簡介在非阻塞模式下利用socket事件的訊息機制,Server端與Client端之間的通信處於異步狀態下。通常需要從CSocket類派生一個新...代碼:CAsyncSocket*pSocket=CAsyncSocket...
簡介 參數 結束語 注釋 -
網路程式設計與開發
CAsyncSocket類對象743.2.3CAsyncSocket類可以接收...CAsyncSocket類的單點聊天程式823.3.1實現目標823.3.2...1424.1.4WinInet函式的異步操作模式1424.2基本WinInet函式...
圖書簡介 目錄 -
計算機網路實驗指導書(第2版)
的實驗組成,其內容涵蓋了異步串列通信、區域網路組網技術、網路數據包捕獲、路由...的異步串列通信編程實驗11.1異步串列通信的基本概念11.1.1異步串列通信11.1.2RS\|232接口標準21.2簡單的異步串列通信編程實驗...
圖書簡介 目錄 -
Windows網路編程基礎教程
——CAsyncSocket類和CSocket類的使用方法。本書主要供...2.5.1創建控制項2.5.2常用控制項2.6Windows的訊息驅動機制與訊息映射2.6.1Windows的訊息驅動機制2.6.2訊息映射2.7使用...
內容簡介 目錄 -
網路工程實訓和實踐套用教程
的生成與分析 6.2.5 TCP建立連線三次握手機制分析 6.2.6 TCP下線四次握手機制分析 6.2.7 STP、DTP、CDP... 10.2.1 概述 10.2.2 利用異步選擇實現TCP協定伺服器端...
圖書信息 內容簡介 圖書目錄