• <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ù)器端計(jì)算
            posts - 70, comments - 428, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            ACE 示例1 --- Time Server

            Posted on 2006-02-16 17:48 小明 閱讀(3611) 評(píng)論(4)  編輯 收藏 引用 所屬分類(lèi): Network/ACE
            這個(gè)系列,我將把我學(xué)ACE寫(xiě)的一些小程序,放上來(lái)跟大家share.

            所謂Time Server,很簡(jiǎn)單,就是用戶(hù)連上來(lái)的時(shí)候,返回系統(tǒng)時(shí)間。這可能是最簡(jiǎn)單的server端程序了。

            代碼:

            #ifdef?_DEBUG
            #pragma?comment(lib,
            "ACED.lib")
            #else
            #pragma?comment(lib,
            "ACE.lib")
            #endif

            #include?
            <ace/OS_main.h>
            #include?
            <ace/ACE.h>
            #include?
            <ace/Log_Msg.h>
            #include?
            <ace/SOCK_Acceptor.h>
            #include?
            <ctime>

            int?main(int?argc,?char?*argv[])
            {
            ????ACE_INET_Addr?addr(
            1500);
            ????ACE_SOCK_Acceptor?server;
            ????ACE_SOCK_Stream?stream;

            ????
            if(server.open(addr)==-1)
            ????{
            ????????ACE_DEBUG?((LM_DEBUG,
            ????????????ACE_TEXT?(
            "(%P|%t)?%p\n"),
            ????????????ACE_TEXT?(
            "bind?failed")));
            ????????
            return?1;
            ????}

            ????
            char?msg[15];

            ????
            while(server.accept(stream)!=-1)
            ????{
            ????????ACE_INET_Addr?raddr;
            ????????stream.get_remote_addr(raddr);
            ????????ACE_DEBUG?((LM_DEBUG,ACE_TEXT?(
            "(%P|%t)?connect:%s?%d\n"),raddr.get_host_addr(),raddr.get_port_number()));

            ????????
            //get?current?time
            ????????time_t?nTime=0;
            ????????time(?
            &nTime?)?;
            ????????tm?
            *tm1?=?localtime(?&nTime?)?;
            ????????sprintf(msg,
            "%04d%02d%02d%02d%02d%02d",tm1->tm_year+1900,tm1->tm_mon+1,tm1->tm_mday,tm1->tm_hour,tm1->tm_min,tm1->tm_sec);

            ????????stream.send_n(msg,
            sizeof(msg));
            ????????stream.close();
            ????}

            ????server.close();

            ????
            return?0;
            }


            簡(jiǎn)單的說(shuō)明一下:

            ACE_INET_Addr相當(dāng)于socket中的sockaddr_in的封裝.

            ACE_SOCK_Acceptor是服務(wù)器端socket操作的封裝,相對(duì)于客戶(hù)端的ACE_SOCK_Connector

            ACE_SOCK_Stream是對(duì)Socket數(shù)據(jù)的封裝,可以把它想象成一個(gè)在網(wǎng)絡(luò)上的數(shù)據(jù)流。發(fā)送數(shù)據(jù),接收數(shù)據(jù)就靠它了。

            ACE_DEBUG是ACE提供的Debug機(jī)制,會(huì)打印信息到控制臺(tái)

            這個(gè)程序使用的是單線(xiàn)程,簡(jiǎn)單的返回時(shí)間,然后關(guān)閉連接,這對(duì)于Time Server是足夠的。

            至于客戶(hù)端程序的寫(xiě)法,參見(jiàn)我以前寫(xiě)的: http://m.shnenglu.com/sandy/archive/2005/11/24/1281.html

            Feedback

            # 頭文件  回復(fù)  更多評(píng)論   

            2006-02-17 16:11 by 曉曉
            這幾個(gè)頭文件,自動(dòng)生成,還是引用的
            #include <ace/OS_main.h>
            #include <ace/ACE.h>
            #include <ace/Log_Msg.h>
            #include <ace/SOCK_Acceptor.h>

            # re: 曉曉  回復(fù)  更多評(píng)論   

            2006-02-17 16:14 by 小明
            什么叫自動(dòng)生成的?當(dāng)然是自己手動(dòng)寫(xiě)的阿。

            # re: ACE 示例1 --- Time Server  回復(fù)  更多評(píng)論   

            2007-12-26 16:32 by 南龍
            正在學(xué)習(xí) ACE ,真不知道如何入門(mén),這里不錯(cuò),以后多多請(qǐng)教!

            # re: ACE 示例1 --- Time Server  回復(fù)  更多評(píng)論   

            2009-08-01 16:23 by Harris Dai
            一起學(xué)ACE的嗎?
            QQ:546298089
            MSN:softdevdhx@gmail.com
            区久久AAA片69亚洲 | 99久久免费国产特黄| 久久国产劲爆AV内射—百度| 久久人人爽人人爽人人片AV麻烦| 久久久精品国产sm调教网站| 久久精品国产精品国产精品污| 久久久久99精品成人片三人毛片 | 久久人人妻人人爽人人爽| 久久精品国产亚洲AV大全| 婷婷久久综合九色综合98| 久久久久久久综合综合狠狠| 中文字幕久久亚洲一区| 成人久久精品一区二区三区| 久久中文字幕视频、最近更新| 久久精品天天中文字幕人妻 | 久久精品国产亚洲AV香蕉| 亚洲乱亚洲乱淫久久| 中文字幕日本人妻久久久免费| 日本精品久久久久中文字幕8| 亚洲欧美久久久久9999 | 久久久久久国产精品无码超碰| 久久久99精品成人片中文字幕| 国内精品伊人久久久久AV影院| 日本久久中文字幕| 久久亚洲精品中文字幕三区| 狠狠综合久久AV一区二区三区| 久久99精品久久久久久野外 | 无码人妻久久久一区二区三区| 久久99热这里只有精品国产 | 99久久99这里只有免费的精品| 久久亚洲AV无码精品色午夜| 久久国产影院| 青青草原综合久久| 国产精品久久久久天天影视| 国产成人精品综合久久久| 久久久久99精品成人片牛牛影视| 欧美综合天天夜夜久久| 亚洲国产精品久久久久网站| 青青青青久久精品国产| 色综合色天天久久婷婷基地| 国内精品久久久久久中文字幕|