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

            網絡服務器軟件開發/中間件開發,關注ACE/ICE/boost

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

            星期四, 六月 8th, 2006 

                    很顯然,文章的標題決定了我們是在linux下使用ACE。我們知道ACE在linux下缺省是用select來實現Reactor的,epoll相對于select的好處這里就不再啰嗦了,我們直接講操作步驟:
                第一:重新編譯ACE庫
                 ACE庫中通過ACE_Dev_Poll_Reactor類來支持epoll,但是ACE庫缺省的安裝是沒有編譯這個類的,我們要做的就是將ACE_Dev_Poll_Reactor編譯連接到ACE庫中(faint,又要重新編譯ACE,在我那臺破服務器上編譯一次需要一個多小時).我的操作系統是Redhat linux AS4.0,ACE的版本是5.4.10。根據ACE壓縮包中的ACE-INSTALL.html,我是用”Building ACE with GNU Autoconf“這種方式來安裝的,安裝步驟如下(很簡單,就不翻譯了):
                   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.
                  好,現在終于可以講如何將ACE_Dev_Poll_Reactor編譯到ACE庫中去了。在上述的第一步和第二步之間修改ACE_wrappers/ace/config-linux.h,增加一行:#define ACE_HAS_EVENT_POLL,然后執行第2、3步,第3步../configure執行完之后,build目錄下會生成一些文件和目錄,打開ACE_wrappers/build/ace/config.h,增加一行:#define ACE_HAS_EVENT_POLL。然后執行第4步make和第5步make install.OK,在漫長的編譯以后,支持epoll的ACE庫總算完成了。

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

            posted on 2007-04-05 08:32 true 閱讀(2161) 評論(0)  編輯 收藏 引用 所屬分類: ACE
            国产欧美久久一区二区| 色综合久久88色综合天天 | 久久99国产精品久久99| 国内精品久久久久久久久| 亚洲国产成人精品女人久久久 | 久久无码国产| 久久亚洲AV成人出白浆无码国产| 久久精品国产久精国产| 久久99热这里只频精品6| 美女写真久久影院| 精品人妻久久久久久888| 亚洲国产精品综合久久一线| 亚洲AV成人无码久久精品老人| 久久99精品国产麻豆不卡| 精品免费久久久久久久| 亚洲国产另类久久久精品黑人| 久久国产精品波多野结衣AV | 久久久久se色偷偷亚洲精品av| 久久久久久a亚洲欧洲aⅴ| 久久水蜜桃亚洲av无码精品麻豆 | 久久伊人精品青青草原高清| 亚洲av日韩精品久久久久久a| 久久人妻少妇嫩草AV无码蜜桃 | 久久97久久97精品免视看| 久久久九九有精品国产| 韩国无遮挡三级久久| 韩国免费A级毛片久久| 久久久无码人妻精品无码| 亚洲国产精品无码久久久不卡| 国产亚洲美女精品久久久2020| 亚洲欧美一区二区三区久久| 久久亚洲国产精品123区| 9999国产精品欧美久久久久久 | 久久亚洲精品成人无码网站| 久久人人爽人人爽人人片AV东京热 | 久久精品国产一区二区电影| 精品国产乱码久久久久久浪潮| 成人国内精品久久久久影院VR| 91久久九九无码成人网站| 精品久久久久久无码中文字幕 | 免费精品久久天干天干|