• <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>

            網(wǎng)絡(luò)服務(wù)器軟件開(kāi)發(fā)/中間件開(kāi)發(fā),關(guān)注ACE/ICE/boost

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
            在ACE中使用epoll
            2007-01-18 15:56

            星期四, 六月 8th, 2006 

                    很顯然,文章的標(biāo)題決定了我們是在linux下使用ACE。我們知道ACE在linux下缺省是用select來(lái)實(shí)現(xiàn)Reactor的,epoll相對(duì)于select的好處這里就不再啰嗦了,我們直接講操作步驟:
                第一:重新編譯ACE庫(kù)
                 ACE庫(kù)中通過(guò)ACE_Dev_Poll_Reactor類(lèi)來(lái)支持epoll,但是ACE庫(kù)缺省的安裝是沒(méi)有編譯這個(gè)類(lèi)的,我們要做的就是將ACE_Dev_Poll_Reactor編譯連接到ACE庫(kù)中(faint,又要重新編譯ACE,在我那臺(tái)破服務(wù)器上編譯一次需要一個(gè)多小時(shí)).我的操作系統(tǒng)是Redhat linux AS4.0,ACE的版本是5.4.10。根據(jù)ACE壓縮包中的ACE-INSTALL.html,我是用”Building ACE with GNU Autoconf“這種方式來(lái)安裝的,安裝步驟如下(很簡(jiǎn)單,就不翻譯了):
                   1 cd to the top-level ACE_wrappers directory.

                   2.Create a subdirectory to hold your build’s configuration and built ACE version,     and   then change to the new directory:

                   mkdir build

                   cd build

                 

                   3.Note that you do not run the create_ace_build.pl utility mentioned in the Cloning the Source Tree section. The configure script takes care of creating all files and links that are needed.

            Configure ACE for your platform by issuing the following command: c

                   ../configure [options]

                 
                  4.Build ACE by typing make.

                  5. Install ACE by typing make install.
                  好,現(xiàn)在終于可以講如何將ACE_Dev_Poll_Reactor編譯到ACE庫(kù)中去了。在上述的第一步和第二步之間修改ACE_wrappers/ace/config-linux.h,增加一行:#define ACE_HAS_EVENT_POLL,然后執(zhí)行第2、3步,第3步../configure執(zhí)行完之后,build目錄下會(huì)生成一些文件和目錄,打開(kāi)ACE_wrappers/build/ace/config.h,增加一行:#define ACE_HAS_EVENT_POLL。然后執(zhí)行第4步make和第5步make install.OK,在漫長(zhǎng)的編譯以后,支持epoll的ACE庫(kù)總算完成了。

                 第二:修改應(yīng)用程序
                    應(yīng)用程序修改很簡(jiǎn)單,兩行代碼搞掂,在應(yīng)用程序初始化時(shí)(必須是在第一次使用ACE_Reactor::instance()之間)加入:
                   
                    m_pDevPollReactor=new ACE_Dev_Poll_Reactor;
                   ACE_Reactor::instance(new ACE_Reactor(m_pDevPollReactor));
                  
                   那么在后續(xù)的對(duì)ACE_Reactor::instance()的調(diào)用就是使用ACE_Dev_Poll_Reactor的實(shí)現(xiàn)了。
              
               第三:重新編譯應(yīng)用程序
              
                    在應(yīng)用程序的makefile中加入 -DACE_HAS_EVENT_POLL,重新make應(yīng)用程序。OK,打完收工。
                    

            posted on 2007-04-05 08:32 true 閱讀(2161) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): ACE
            久久综合亚洲鲁鲁五月天| 97r久久精品国产99国产精| 国产综合精品久久亚洲| 久久久久久狠狠丁香| 久久99精品国产99久久| 久久精品国产亚洲综合色| 国产亚洲美女精品久久久久狼| 国内精品人妻无码久久久影院| 97久久久精品综合88久久| 久久99精品久久久久久| 久久精品国产亚洲av水果派| 99久久免费国产精品热| 婷婷综合久久中文字幕蜜桃三电影| 99久久精品免费看国产一区二区三区 | 日韩久久久久中文字幕人妻| 日本久久中文字幕| 亚洲人成伊人成综合网久久久| 色婷婷久久综合中文久久蜜桃av| 国产精品国色综合久久| 91精品国产91久久久久久青草| 久久久久国产精品三级网| 亚洲国产美女精品久久久久∴| 国产成人综合久久综合| 手机看片久久高清国产日韩| 国产aⅴ激情无码久久| 色综合色天天久久婷婷基地| 久久天天躁夜夜躁狠狠| 久久美女网站免费| 久久99国产精品久久99小说| 九九99精品久久久久久| 欧美亚洲国产精品久久久久| 久久国产精品无码一区二区三区| 久久久免费观成人影院| 精品免费tv久久久久久久| 久久精品视频一| 91亚洲国产成人久久精品网址 | 97超级碰碰碰碰久久久久| 国产精品成人久久久| 成人午夜精品久久久久久久小说| 一本色道久久88精品综合| 久久久国产一区二区三区|