• <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采用 知識(shí)共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協(xié)議 進(jìn)行許可。 —— Fox <游戲人生>

            游戲人生

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

            Author: Fox

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

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

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

            1、當(dāng)socket的recv buff為空時(shí),進(jìn)程會(huì)wait直到新數(shù)據(jù)到達(dá);

            2、當(dāng)socket的send buff已滿時(shí),進(jìn)程會(huì)wait直到空間足夠;

            3、當(dāng)socket的accept沒有新連接到達(dá),進(jìn)程會(huì)wait直到新連接到達(dá);

            4、當(dāng)socket的connect沒有收到ACK,進(jìn)程會(huì)wait直到收到ACK。

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

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

            IOCP是MS提供的Windows內(nèi)核對(duì)象,內(nèi)部使用線程池管理,并根據(jù)CPU的個(gè)數(shù)確定線程個(gè)數(shù)。當(dāng)數(shù)據(jù)到達(dá)后,統(tǒng)一投遞到唯一的IOCP隊(duì)列,對(duì)應(yīng)的若干工作線程用于處理這些數(shù)據(jù),從而實(shí)現(xiàn)非阻塞異步I/O。

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

            1、OVERLAPPED結(jié)構(gòu):

            2、CreateIoCompletioPort:用于創(chuàng)建IOCP,關(guān)聯(lián)連接來(lái)的socket句柄,用于接收數(shù)據(jù);

            3、GetQueuedCompletionStatus:供工作線程調(diào)用,取到數(shù)據(jù)的線程會(huì)加入I/O完成隊(duì)列,IOCP的線程池管理這些工作線程。

            三、深入學(xué)習(xí)和使用

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

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

            3、Google

            //-----------------------------------------------------------------------------------------------------
            感覺用Office 2007編輯和發(fā)布Blog比Live Writer要方便很多,主要是Live Writer的編輯功能太少了,如果2007能夠?qū)︽溄舆M(jìn)行target設(shè)置,
            再支持EntryName就perfact了J
            從新公司回來(lái),還沒有完全適應(yīng)這邊寬松的環(huán)境,這幾天好似夢(mèng)游一般,先是IE出問題,Ghost了一道,后面是Outlook收郵件出問題。
            還是夜深人靜的時(shí)候,一個(gè)人燃著煙、聽著歌、喝著茶、敲著鍵盤有感覺……
            //-----------------------------------------------------------------------------------------------------

            Feedback

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

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

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

            2008-03-06 20:58 by true
            還沒有完全適應(yīng)這邊寬松的環(huán)境

            那家公司?:)

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇[未登錄]  回復(fù)  更多評(píng)論   

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

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

            網(wǎng)絡(luò)模型從某種層次上來(lái)說,
            1.blcok socket
            2.select socket ( WSAEventSelect, WSAAsyncSelect, etc.
            3.overlapped io (根據(jù)獲取結(jié)果的不同又分為其中)
            4.async io (關(guān)于IOCP其實(shí)有很多細(xì)節(jié),并且事實(shí)上IOCP并不局限于網(wǎng)絡(luò)IO)

            詳見《Windows網(wǎng)絡(luò)編程》第二版。。。以及你手上的《unix網(wǎng)絡(luò)編程》 :D

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

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

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

            2008-04-15 15:51 by alittlewolf
            文章比較新.
            確實(shí)要注意一下,block io與async io的區(qū)別, 這樣對(duì)初學(xué)者影響很大.

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

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

            # re: MMORPG網(wǎng)絡(luò)模型剖析——IOCP篇  回復(fù)  更多評(píng)論   

            2008-12-16 16:04 by 飛鴿傳書
            不過,還是謝謝你了。
            久久播电影网| 精品熟女少妇AV免费久久| 久久久久综合网久久| 亚洲欧洲精品成人久久曰影片| 久久婷婷五月综合97色直播| 久久国产乱子伦精品免费强| 久久亚洲精品国产亚洲老地址| 99久久无色码中文字幕| 亚洲а∨天堂久久精品9966| 成人免费网站久久久| 亚洲美日韩Av中文字幕无码久久久妻妇 | 麻豆av久久av盛宴av| 99久久中文字幕| 亚洲国产精品成人久久| 国产2021久久精品| 日日躁夜夜躁狠狠久久AV| 色综合久久天天综线观看| 久久精品这里热有精品| 亚洲国产精品一区二区久久hs| 性欧美大战久久久久久久| 国产精品va久久久久久久| 91精品国产乱码久久久久久| 伊人久久大香线蕉综合影院首页| 久久久久18| 国内精品伊人久久久久网站| 精品久久久久久久久午夜福利| 久久久久久久久波多野高潮| 欧美亚洲另类久久综合婷婷 | 国产成人精品久久综合| 久久国产高潮流白浆免费观看| 亚洲精品乱码久久久久久久久久久久 | 2021国产精品午夜久久| 性做久久久久久久久老女人| 国产毛片久久久久久国产毛片| 久久国产乱子伦精品免费强| 精品久久久久久久久中文字幕| 亚洲AV成人无码久久精品老人| 国产A三级久久精品| 中文字幕日本人妻久久久免费| 久久精品国产亚洲AV蜜臀色欲| 77777亚洲午夜久久多人|