• <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>
            Creative Commons License
            本Blog采用 知識共享署名-非商業性使用-禁止演繹 3.0 Unported許可協議 進行許可。 —— Fox <游戲人生>

            游戲人生

            游戲人生 != ( 人生 == 游戲 )
            站點遷移至:http://www.yulefox.com。請訂閱本博的朋友將RSS修改為http://feeds.feedburner.com/yulefox
            posts - 62, comments - 508, trackbacks - 0, articles - 7

            MMORPG網絡模型剖析——IOCP篇

            Posted on 2008-03-06 01:18 Fox 閱讀(4432) 評論(7)  編輯 收藏 引用 所屬分類: G游戲編程

            Author: Fox

            //-----------------------------------------------------------------------------------------------------
            夜深了,隨便寫寫……
            //-----------------------------------------------------------------------------------------------------

            大凡學過編程語言和網絡的TX應該都寫過自己的聊天程序,那時候大家都知道了套接字怎么selectconnectbindlistenacceptsendrecv,也知道了TCPUDP的區別……稍微用功的TX或許還寫過多人聊天程序,知道了什么是阻塞I/O,真正致力于向QQ、MSN等即時聊天工具靠齊的大牛對本文提到的IOCP更是了然于胸。更多的TX或者有興趣繼續看下去。

            一、阻塞I/O(主要指TCP)

            1、當socket的recv buff為空時,進程會wait直到新數據到達;

            2、當socket的send buff已滿時,進程會wait直到空間足夠;

            3、當socket的accept沒有新連接到達,進程會wait直到新連接到達;

            4、當socket的connect沒有收到ACK,進程會wait直到收到ACK。

            而非阻塞I/O則是致力于提供高效的異步I/O。

            二、IOCP(I/O Completion PortI/O完成端口

            IOCP是MS提供的Windows內核對象,內部使用線程池管理,并根據CPU的個數確定線程個數。當數據到達后,統一投遞到唯一的IOCP隊列,對應的若干工作線程用于處理這些數據,從而實現非阻塞異步I/O。

            簡單了解了IOCP的功能和原理,下面提供幾點線索,供有興趣的TX整理思緒J

            1、OVERLAPPED結構:

            2、CreateIoCompletioPort:用于創建IOCP,關聯連接來的socket句柄,用于接收數據;

            3、GetQueuedCompletionStatus:供工作線程調用,取到數據的線程會加入I/O完成隊列,IOCP的線程池管理這些工作線程。

            三、深入學習和使用

            1、Jeffrey Richter的《Advanced Windows》,第15章,誰看誰知道J

            2、Jim Beveridge & Robert Wiener的《Multithreading Applications in Win32》,第6章,誰看誰知道J

            3、Google

            //-----------------------------------------------------------------------------------------------------
            感覺用Office 2007編輯和發布Blog比Live Writer要方便很多,主要是Live Writer的編輯功能太少了,如果2007能夠對鏈接進行target設置,
            再支持EntryName就perfact了J
            從新公司回來,還沒有完全適應這邊寬松的環境,這幾天好似夢游一般,先是IE出問題,Ghost了一道,后面是Outlook收郵件出問題。
            還是夜深人靜的時候,一個人燃著煙、聽著歌、喝著茶、敲著鍵盤有感覺……
            //-----------------------------------------------------------------------------------------------------

            Feedback

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-03-06 16:40 by Yule Snow
            海納百川,相信你一定可以的!

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-03-06 20:58 by true
            還沒有完全適應這邊寬松的環境

            那家公司?:)

            # re: MMORPG網絡模型剖析——IOCP篇[未登錄]  回復  更多評論   

            2008-03-07 00:36 by kevin lynx
            不客氣地說,
            fox兄這篇文章講的讓我大跌眼鏡。。。

            一個很重要的概念,block io不等于async io。

            網絡模型從某種層次上來說,
            1.blcok socket
            2.select socket ( WSAEventSelect, WSAAsyncSelect, etc.
            3.overlapped io (根據獲取結果的不同又分為其中)
            4.async io (關于IOCP其實有很多細節,并且事實上IOCP并不局限于網絡IO)

            詳見《Windows網絡編程》第二版。。。以及你手上的《unix網絡編程》 :D

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-03-07 00:44 by Fox
            @kevin lynx
            nonblock io >> overlapped io >> iocp
            不知這樣說明白沒有;)

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-04-15 15:51 by alittlewolf
            文章比較新.
            確實要注意一下,block io與async io的區別, 這樣對初學者影響很大.

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-12-16 16:03 by FEIM Studios
            OH,貌似看不明白。

            # re: MMORPG網絡模型剖析——IOCP篇  回復  更多評論   

            2008-12-16 16:04 by 飛鴿傳書
            不過,還是謝謝你了。
            久久久久婷婷| 久久综合亚洲欧美成人| AV无码久久久久不卡蜜桃| 久久久无码精品亚洲日韩蜜臀浪潮| 久久强奷乱码老熟女网站 | 国产三级久久久精品麻豆三级| 精品永久久福利一区二区| 国产69精品久久久久99尤物| 久久强奷乱码老熟女| 狠狠色丁香久久婷婷综合蜜芽五月 | 久久人妻少妇嫩草AV无码专区| 国产精品久久网| 久久精品国产亚洲av麻豆蜜芽 | 无码专区久久综合久中文字幕| 久久国产精品-国产精品| 久久香综合精品久久伊人| 99久久免费国产精品热| 久久久久亚洲AV成人网人人网站| 久久精品草草草| 精品蜜臀久久久久99网站| 久久人人爽人人人人爽AV| 欧美成a人片免费看久久| 久久精品国产91久久综合麻豆自制 | 无夜精品久久久久久| 国内精品久久久久| 色欲综合久久中文字幕网| 91麻豆国产精品91久久久| 国产精品午夜久久| 国产成人精品久久| 青青草国产精品久久久久| 成人综合伊人五月婷久久| 久久久久久亚洲AV无码专区| 97精品依人久久久大香线蕉97 | 久久精品嫩草影院| 国内精品久久久久| 国产精品美女久久久久AV福利| 69SEX久久精品国产麻豆| 久久久久久久亚洲Av无码| 亚洲午夜久久久久久久久久| 久久久久人妻一区二区三区| 久久婷婷国产剧情内射白浆|