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

            Focus on ACE

            訂閱 ace-china
            電子郵件:
            瀏覽存于 groups.google.com 上的所有帖子

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              64 Posts :: 3 Stories :: 22 Comments :: 0 Trackbacks

            ?簡(jiǎn)單講解ACE_SOCK Wrapper Class的使用

            Stone Jiang
            http://www.shnenglu.com/ace


            我們先來(lái)看一個(gè)場(chǎng)景:
            您去一家餐館吃飯,這家餐館位置就在水木清華街23號(hào);您得事先知道餐館的位置,從門進(jìn)入,如果你想破墻而入那是不允可的。當(dāng)你進(jìn)門后,餐館會(huì)有一位領(lǐng)位員招呼你,領(lǐng)位員會(huì)安排一個(gè)服務(wù)員為你提供服務(wù)的,你可以向服務(wù)員點(diǎn)菜,或聽取服務(wù)員的推薦。用餐后你離開餐館。

            利用ACE SOCK編程,與上館子極其相似。我們來(lái)作一個(gè)對(duì)比。
            餐館的位置,嗯,計(jì)算機(jī)上,我們是IP地址,水木清華我們對(duì)應(yīng)的是 smth.org,它的門牌號(hào)呢,對(duì)應(yīng)的是我們的端口地址,在ACE中,我們用ACE_INET_Addr來(lái)表示。
            即,
            ACE_INET_Addr peer_addr;
            peer_addr;.set(23,"smth.org");
            我們也可以直接通過(guò)它的帶參數(shù)的構(gòu)造函數(shù)來(lái)聲明和初始化,
            ACE_INET_Addr peer_addr(23,"smth.org")

            餐館的領(lǐng)位員相當(dāng)于 ACE_SOCK_Acceptor,它被動(dòng)的站在站口等著客戶的到來(lái),您作為客戶,是主動(dòng)端,ACE_SOCK_Connector則是您將在代碼中看到的。

            ACE面向連接的網(wǎng)絡(luò)編程,有三個(gè)主要的角色
            主動(dòng)端,被動(dòng)端和數(shù)據(jù)交流的通道,即
            ACE_SOCK_Acceptor, ACE_SOCK_Connector和ACE_SOCK_Stream

            接收和發(fā)送數(shù)據(jù),則通過(guò) ACE_SOCK_Stream::recv(...)和send(...)完成,本例演示了接收時(shí)的調(diào)用。

            完成數(shù)據(jù)交互之后,ACE_SOCK_Stream::close()完成斷開連接操作。 這相當(dāng)于買單走人。

            注:smth.org:23是水木清華Telnet服務(wù),您還可以通過(guò)
            telnet smth.org來(lái)訪問(wèn)。

            下面是完整代碼示例 VC 7.1下調(diào)試通過(guò)
            //@file:?mybrowser.cpp
            //???????Main?function
            //@auth:?Stone?Jiang?<2005119@gmail.com>
            //@date:?2006-4-20

            #include?
            "ace/Log_Msg.h"
            #include?
            "ace/SOCK_Connector.h"
            #include?
            "ace/SOCK_Stream.h"
            #include?
            "ace/INET_Addr.h"


            int?ACE_TMAIN(int?argc,?ACE_TCHAR*?argv[])
            {
            ??ACE_DEBUG((LM_DEBUG,
            "start?here\n"));

            ??
            const?char*?server_hostname?=?"smth.org";

            ??ACE_SOCK_Connector?connector;
            ??ACE_SOCK_Stream?peer;
            ??ACE_INET_Addr?peer_addr;
            ??
            char?buf[64]={0};

            ??
            if(peer_addr.set(23,server_hostname)?==?-1)
            ??{
            ?????ACE_ERROR_RETURN((LM_DEBUG,
            "(%P|%t)?%p\n",
            ?????????????????
            "Set?server?host"),-1);

            ??}
            ??
            else?if(connector.connect(peer,peer_addr)?==?-1)
            ??{
            ????ACE_ERROR_RETURN((LM_DEBUG,
            "(%P|%t)?%p\n",
            ??????
            "Connection"),-1);

            ??}
            ??ACE_DEBUG((LM_DEBUG,
            "建立連接成功?\n"));
            ??
            const?int?s?=?64?*?10;
            ??
            int?m?=?0;
            ??
            for(ssize_t?n;?(n?=?peer.recv(buf,sizeof?buf))>0;)
            ??{
            ????
            ????ace::write_n(ACE_STDOUT,buf,n);
            ????m?
            +=?n;
            ????
            if(?m?>?s)
            ????{
            ??????
            break;
            ????}
            ??}
            ??peer.close();

            ??
            return?0;
            }




            posted on 2006-04-20 23:50 Stone Jiang 閱讀(1125) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACE 、C++&OOP
            久久综合视频网站| 一本色道久久88综合日韩精品 | 麻豆精品久久精品色综合| 久久久无码精品亚洲日韩蜜臀浪潮| 亚洲狠狠婷婷综合久久久久 | 午夜视频久久久久一区 | 亚洲国产精品婷婷久久| 亚洲伊人久久综合中文成人网| 久久久亚洲欧洲日产国码是AV| 亚洲AV日韩精品久久久久久久| 嫩草影院久久国产精品| 久久精品国产亚洲AV香蕉| 国产成人无码精品久久久免费| 中文字幕无码久久久| 久久青草国产精品一区| 亚洲va中文字幕无码久久| 国产精品久久久99| 激情伊人五月天久久综合| 综合久久精品色| 久久露脸国产精品| 久久福利青草精品资源站免费| 亚洲午夜久久久久久久久电影网| 国产一区二区三精品久久久无广告| 麻豆成人久久精品二区三区免费| 亚洲国产成人久久笫一页| 丁香五月综合久久激情| 精品久久777| 99久久精品日本一区二区免费| 国产成人精品三上悠亚久久| 久久精品成人欧美大片| www.久久精品| 国产精品99久久久久久人| 色综合久久久久无码专区| 人人妻久久人人澡人人爽人人精品| 国产精品亚洲综合专区片高清久久久| 久久久老熟女一区二区三区| 久久综合给合久久国产免费| 久久人人爽人人爽人人片av高请| 久久综合狠狠综合久久综合88| 日韩人妻无码精品久久久不卡| AV色综合久久天堂AV色综合在|