国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Windows Sockets:阻塞

2019-11-17 05:11:57
字體:
供稿:網(wǎng)友
本文以及另外兩篇相關(guān)文章解釋 Windows Sockets 編程方面的一些問題。本文介紹阻塞。其他問題包含在 Windows Sockets:字節(jié)排序和 Windows Sockets:轉(zhuǎn)換字符串文章中。
假如使用 CAsyncSocket 類或從其派生,則您需要自己治理這些問題。假如您使用 CSocket 類或從其派生,則由 MFC 治理它們。阻塞 套接字可以處于“阻塞模式”或“無阻塞模式”。處于阻塞(或同步)模式時,套接字的函數(shù)直到可以完成自己的操作時才返回。這稱為“阻塞”,因?yàn)楹瘮?shù)被調(diào)用的套接字在調(diào)用返回前無法執(zhí)行任何操作──它被阻塞了。例如,對 Receive 成員函數(shù)的調(diào)用可能需要任意長的時間才能完成,因?yàn)樗却l(fā)送應(yīng)用程序來發(fā)送(使用 CSocket 或使用帶阻塞的 CAsyncSocke 即是如此)。假如 CAsyncSocket 對象處于無阻塞模式(異步操作),調(diào)用會立即返回,而當(dāng)前錯誤代碼(可使用 GetLastError 成員函數(shù)檢索)為 WSAEWOULDBLOCK ,它指出由于模式的原因,調(diào)用若不立即返回則將阻塞。( CSocket 永遠(yuǎn)不返回 WSAEWOULDBLOCK 。該類為您治理阻塞。) 在 32 位操作系統(tǒng)(如 Windows 95 或 Windows 98)和 16 位操作系統(tǒng)(如 Windows 3.1)下,套接字的行為是不同的。與 16 位操作系統(tǒng)不同,32 位操作系統(tǒng)使用搶占式多任務(wù)處理技術(shù)并提供多線程運(yùn)行方式。在 32 位操作系統(tǒng)下,可以將套接字放在單獨(dú)的輔助線程中。線程中的套接字可以在不妨礙應(yīng)用程序中其他活動的情況下阻塞,并且不必在阻塞上花費(fèi)計(jì)算時間。有關(guān)多線程編程的信息,請參見文章多線程編程。 注重: 在多線程應(yīng)用程序中,可以使用 CSocket 的阻塞特性來簡化程序設(shè)計(jì),而不影響用戶界面的響應(yīng)。通過處理主線程中的用戶交互和備用線程中的 CSocket 處理,可以將這些邏輯操作分開。在非多線程的應(yīng)用程序中,這兩個活動必須合并為單個線程來處理。這通常意味著使用 CAsyncSocket 以根據(jù)需要處理通信請求,或重寫 CSocket::OnMessagePending 以在漫長的同步活動中處理用戶操作。 其余的討論針對以 16 位操作系統(tǒng)為目標(biāo)的程序員: 通常,假如使用的是 CAsyncSocket ,則應(yīng)避免使用阻塞操作,而應(yīng)使用異步操作。例如,在異步操作中,從調(diào)用 Receive 后接收到 WSAEWOULDBLOCK 錯誤代碼那一刻開始,您將一直等到 OnReceive 成員函數(shù)被調(diào)用以通知您可以再次讀取。通過回調(diào)套接字的適當(dāng)回調(diào)通知函數(shù)(如 OnReceive)來完成異步調(diào)用。 在 Windows 下,阻塞調(diào)用被認(rèn)為是錯誤的做法。默認(rèn)情況下,CAsyncSocket 支持異步調(diào)用,而且您必須使用回調(diào)通知自己治理阻塞。另一方面,CSocket 類是同步的。它抽取 Windows 消息并為您治理阻塞。 有關(guān)阻塞的更多信息,請參見 Windows Sockets 規(guī)范。有關(guān)“On”函數(shù)的更多信息,請參見 Windows Sockets:套接字通知和 Windows Sockets:從套接字類派生。 有關(guān)更多信息,請參見:
  • Windows Sockets:使用 CAsyncSocket 類
  • Windows Sockets:使用帶存檔的套接字
  • Windows Sockets:背景知識
  • Windows Sockets:流式套接字
  • Windows Sockets:數(shù)據(jù)文報(bào)套接字
更多文章 更多內(nèi)容請看Windows操作系統(tǒng)安全集  Windows操作系統(tǒng)安裝  Windows頻道專題,或

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄱阳县| 城固县| 习水县| 祁门县| 香格里拉县| 唐河县| 江城| 东辽县| 沈阳市| 原阳县| 扎赉特旗| 三河市| 高安市| 贵州省| 华阴市| 深水埗区| 天全县| 锦屏县| 和平县| 沅江市| 竹山县| 五河县| 长白| 弥勒县| 靖宇县| 潍坊市| 河津市| 醴陵市| 永昌县| 平利县| 栾川县| 台东县| 嫩江县| 富阳市| 原阳县| 体育| 年辖:市辖区| 南部县| 丰宁| 湟源县| 泰州市|