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

            小明思考

            高性能服務器端計算
            posts - 70, comments - 428, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            ACE 示例1 --- Time Server

            Posted on 2006-02-16 17:48 小明 閱讀(3606) 評論(4)  編輯 收藏 引用 所屬分類: Network/ACE
            這個系列,我將把我學ACE寫的一些小程序,放上來跟大家share.

            所謂Time Server,很簡單,就是用戶連上來的時候,返回系統時間。這可能是最簡單的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;
            }


            簡單的說明一下:

            ACE_INET_Addr相當于socket中的sockaddr_in的封裝.

            ACE_SOCK_Acceptor是服務器端socket操作的封裝,相對于客戶端的ACE_SOCK_Connector

            ACE_SOCK_Stream是對Socket數據的封裝,可以把它想象成一個在網絡上的數據流。發送數據,接收數據就靠它了。

            ACE_DEBUG是ACE提供的Debug機制,會打印信息到控制臺

            這個程序使用的是單線程,簡單的返回時間,然后關閉連接,這對于Time Server是足夠的。

            至于客戶端程序的寫法,參見我以前寫的: http://www.shnenglu.com/sandy/archive/2005/11/24/1281.html

            Feedback

            # 頭文件  回復  更多評論   

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

            # re: 曉曉  回復  更多評論   

            2006-02-17 16:14 by 小明
            什么叫自動生成的?當然是自己手動寫的阿。

            # re: ACE 示例1 --- Time Server  回復  更多評論   

            2007-12-26 16:32 by 南龍
            正在學習 ACE ,真不知道如何入門,這里不錯,以后多多請教!

            # re: ACE 示例1 --- Time Server  回復  更多評論   

            2009-08-01 16:23 by Harris Dai
            一起學ACE的嗎?
            QQ:546298089
            MSN:softdevdhx@gmail.com
            国产成人久久激情91| 精品国际久久久久999波多野| 国产免费久久精品99久久| 久久99精品国产麻豆婷婷| 久久久久久伊人高潮影院 | 久久成人18免费网站| 久久午夜免费视频| 国产一区二区精品久久| 日本久久中文字幕| 久久香蕉一级毛片| 亚洲欧美日韩中文久久| 久久精品国产欧美日韩| 无码人妻少妇久久中文字幕蜜桃 | 热久久国产精品| 亚洲精品乱码久久久久久中文字幕| 91精品国产高清久久久久久91| 狠狠色丁香婷婷久久综合五月| 久久天堂电影网| 国产综合久久久久久鬼色| 亚洲婷婷国产精品电影人久久| 国产精品一久久香蕉国产线看观看| 无码人妻少妇久久中文字幕| 99久久精品国产一区二区| 精品熟女少妇a∨免费久久| 东方aⅴ免费观看久久av| 亚洲伊人久久综合中文成人网| 久久精品?ⅴ无码中文字幕| 精品免费tv久久久久久久| 久久婷婷国产综合精品 | 亚洲国产成人久久精品动漫| 色88久久久久高潮综合影院| 一本一本久久aa综合精品| 国产精品久久久久久久app| 日日狠狠久久偷偷色综合免费| 久久99精品国产99久久6| 国产高清国内精品福利99久久| 国产91久久综合| 久久九九久精品国产| 亚洲午夜无码AV毛片久久| 亚洲?V乱码久久精品蜜桃| 97久久国产综合精品女不卡|