• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            twzheng's cppblog

            『站在風口浪尖緊握住鼠標旋轉!』 http://www.cnblogs.com/twzheng

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              136 隨筆 :: 78 文章 :: 353 評論 :: 0 Trackbacks
            幾種winsock I/O模型的分析

               套接字是通信的基礎,是支持網絡協議數據通信的基本接口。
            Winsocket 提供了一些有趣的I/O模型,有助于應用程序通過一種“異步”方式,一次對一個或者多個套接字上進行的通信加以管理。這些模型包括select(選擇)、WSAAsynSelect(異步選擇)、WSAEventSelect(事件選擇)、Overlapped I/O(重疊 I/O)以及Completion port(完成端口)。

            ① select 模型:

                   select模型是WinSock中應用最廣泛的模型之一,核心就是select函數,它可用于判斷套接字上是否存在數據,或者能否向一個套接字寫入數據。這個函數可以有效地防止應用程序在套接字處于阻塞模式中時,send或recv進入阻塞狀態;同時也可以防止產生大量的WSAEWOULDBLOCK錯誤select的優勢是能夠從單個線程的多個套接字上進行多重連接及I/O。這就避免了伴隨阻塞套接字和多重連接的線程劇增。

            ② WSAAsyncSelect 模型:

                   因為它是以消息為基礎的,關鍵就是WSAAsyncSelect函數,將socket消息發送到hWnd窗口上,然后在那里處理相應的FD_READ、FD_WRITE等等消息。優點:WSAAsyncSelect和WSAEventSelect模型提供了讀寫數據能力的異步通知,但他們不提供異步數據傳送,而重疊及完成端口提供異步數據的傳送。而且它可以在系統開銷不大的情況下同時處理很多連接,而select模型還需要建立fd_set結構。 缺點:必須要使用一個窗口接收消息,如果處理成千上萬的套接字就力不從心了。

            ③ WSAEventSelect 模型:

                   這個也是以時間為基礎的網絡事件通知,但是與WSAAsyncSelect不同的是,它主要是由事件對象句柄完成的,而不是通過窗口。優點:不需要窗口。缺點:每次只能等待64個事件,所以處理多個套接字時有必要組織一個線程池;所以伸縮性就不如后面的完成端口了。

            ④ 重疊模型:

                   這個模型可以使程序能達到更佳的系統性能。基本設計原理就是讓應用程序使用重疊的數據結構,一次投遞一個或多個I/O請求。針對這些提交的請求,在他們完成之后,應用程序可為他們提供服務。它又分為兩種實現方法:在事件中使用,還有就是完成例程。

            ⑤ 完成端口:

                   完成端口提供了最好的伸縮性,往往可以使系統達到最好的性能,是處理成千上萬的套接字的首選。從本質上說,完成端口模型要求創建一個windows完成端口對象,該對象通過指定數量的線程,對重疊I/O請求進行管理,以便為已經完成的重疊I/O請求提供服務。

            posted on 2007-05-30 21:28 譚文政 閱讀(3108) 評論(1)  編輯 收藏 引用 所屬分類: 網絡編程

            評論

            # re: 幾種winsock I/O模型的分析 2007-06-04 14:30 看圖軟件
            有實例就好了  回復  更多評論
              

            97久久久精品综合88久久| 久久综合给久久狠狠97色| 99久久免费只有精品国产| 99久久综合国产精品二区| 久久香蕉国产线看观看猫咪?v| 久久精品青青草原伊人| 精品久久久久久中文字幕| 伊人久久大香线蕉综合网站| 精品国产VA久久久久久久冰| 亚洲&#228;v永久无码精品天堂久久| 日韩人妻无码一区二区三区久久99| 99久久中文字幕| 伊人久久大香线蕉av不卡| 色综合色天天久久婷婷基地| 久久99久久99精品免视看动漫| 大美女久久久久久j久久| 麻豆成人久久精品二区三区免费 | 97精品伊人久久大香线蕉| 精品国产VA久久久久久久冰| 久久久午夜精品福利内容| 色综合合久久天天综合绕视看| 久久精品午夜一区二区福利| 欧美日韩精品久久久免费观看| 国产免费久久久久久无码| 久久青青草原国产精品免费| AV无码久久久久不卡网站下载| 性欧美丰满熟妇XXXX性久久久 | 日韩欧美亚洲综合久久| 色99久久久久高潮综合影院| 91超碰碰碰碰久久久久久综合| 久久夜色精品国产噜噜麻豆| 99久久精品国产一区二区 | 色婷婷综合久久久中文字幕 | 久久久久免费视频| 国产精品久久久久一区二区三区 | 国产一区二区精品久久| 国内精品久久国产大陆| 国产高潮国产高潮久久久91 | 无码精品久久一区二区三区 | 久久国产高清一区二区三区| 国产精品欧美久久久久无广告|