• <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 - 58,  comments - 75,  trackbacks - 0

            ??? ACE_INET_Addr類(lèi),包裝了網(wǎng)絡(luò)地址
            ??? ACE_SOCK_Connector類(lèi),扮演主動(dòng)連接角色,發(fā)起通訊連接。連接到遠(yuǎn)端的服務(wù)。
            ??? ACE_SOCK_Acceptor類(lèi),扮演被動(dòng)連接角色,等待連接。等待遠(yuǎn)端客戶(hù)的請(qǐng)求。
            ??? ACE_SOCK_Stream類(lèi),扮演數(shù)據(jù)通訊角色,發(fā)送和接收數(shù)據(jù)。完成客戶(hù)與服務(wù)之間的通訊。
            ???
            ??? 利用ACE庫(kù)來(lái)開(kāi)發(fā)網(wǎng)絡(luò)通訊程序是很簡(jiǎn)單的,一個(gè)基本程序只用到以上提到的幾個(gè)類(lèi),就
            可以完成一個(gè)基于客戶(hù)端、服務(wù)器端模型的網(wǎng)絡(luò)應(yīng)用的開(kāi)發(fā)。開(kāi)發(fā)者無(wú)需了解Socket在不同平
            臺(tái)上的實(shí)現(xiàn),記憶眾多并相互關(guān)聯(lián)的Socket APIs。

            ??? 一下以一個(gè)Hello World程序?yàn)檠菔尽?br />???
            ??? 客戶(hù)端程序。發(fā)送一個(gè)Hello World到遠(yuǎn)端的服務(wù)器,并接收服務(wù)器返回的信息,將信息
            打印在屏幕上。

            #include <iostream>
            #include <string>

            #include <ace/ACE.h>
            #include <ace/INET_Addr.h>
            #include <ace/SOCK_Connector.h>
            #include <ace/SOCK_Stream.h>

            int main( int argc, char* argv[] )
            {
            ?ACE::init();//初始化ACE庫(kù),在windows下一定要

            ?std::string str = "hello world";

            ?//設(shè)置服務(wù)器地址
            ?//第一個(gè)參數(shù)是端口,第二個(gè)是ip地址,也可以是域名。
            ?//可以先定義一個(gè)地址對(duì)象,再用ACE_INET_Addr的set函數(shù)來(lái)設(shè)定。
            ?//地址的配置很多,具體的參照文檔
            ?ACE_INET_Addr peer_addr( 5050, "127.0.0.1" );
            ?ACE_SOCK_Stream peer_stream;//定義一個(gè)通訊隊(duì)形

            ?ACE_SOCK_Connector peer_connector;//定義一個(gè)主動(dòng)連接對(duì)象
            ?peer_connector.connect( peer_stream, peer_addr );//發(fā)起一個(gè)連接

            ?peer_stream.send( str.c_str(), str.length() );//發(fā)送數(shù)據(jù)到服務(wù)器

            ?str.erase();
            ?str.resize( sizeof( "hello world" ) );
            ?peer_stream.recv( (void*)str.c_str(), str.length() );//接收來(lái)自服務(wù)器的信息

            ?std::cout << "from server message : " << str << std::endl;

            ??? ACE::fini();
            ?return 0;
            }

            ??? 服務(wù)器端代碼。接收一個(gè)遠(yuǎn)端的連接,將接收到的信息打印在屏幕上,并將接收到的信
            息返回給客戶(hù)端。
            #include <iostream>
            #include <string>

            #include <ace/ACE.h>
            #include <ace/SOCK_Acceptor.h>
            #include <ace/SOCK_Stream.h>

            int main( int argc, char* argv[] )
            {
            ?ACE::init();

            ?std::string str;
            ?str.resize( sizeof( "hello world" ) );

            ?//設(shè)置服務(wù)器地址
            ?ACE_INET_Addr peer_addr( 5050, "127.0.0.1" );

            ?ACE_SOCK_Stream peer_stream;
            ?
            ?//創(chuàng)建被動(dòng)連接角色對(duì)象
            ?ACE_SOCK_Acceptor peer_acceptor;
            ?//開(kāi)啟被動(dòng)連接對(duì)象,將對(duì)象綁定到一個(gè)地址上
            ?peer_acceptor.open( peer_addr );

            ?//等待連接
            ?peer_acceptor.accept( peer_stream );

            ?//數(shù)據(jù)通訊
            ?peer_stream.recv( (void*)str.c_str(), str.length() );
            ?std::cout << "from client message : " << str << std::endl;
            ?peer_stream.send( str.c_str(), str.length() );

            ?ACE::fini();
            ?return 0;
            }
            ××××以上代碼需要ACE庫(kù)才能運(yùn)轉(zhuǎn)××××
            ???
            ??? 利用ACE編程的基本框架。
            ??? 客戶(hù)端
            ??? 1 創(chuàng)建地址對(duì)象。(ACE_INET_Addr)
            ??? 2 創(chuàng)建主動(dòng)連接對(duì)象。(ACE_SOCK_Connector)
            ??? 3 創(chuàng)建數(shù)據(jù)通訊對(duì)象。(ACE_SOCK_Stream)
            ??? 4 設(shè)置服務(wù)器地址。(ACE_INET_Addr::set)
            ??? 5 將數(shù)據(jù)通訊對(duì)象和地址作為參數(shù)傳給主動(dòng)連接對(duì)象,發(fā)起主動(dòng)連接(ACE_SOCK_Connector::connect)
            ??? 6 利用通訊對(duì)象接收和發(fā)送數(shù)據(jù)。(ACE_SOCK_Stream::recv和ACE_SOCK_Stream::send)
            ???
            ??? 服務(wù)器端
            ??? 1 創(chuàng)建地址對(duì)象。(ACE_INET_Addr)
            ??? 2 創(chuàng)建被動(dòng)連接對(duì)象。(ACE_SOCK_Connector)
            ??? 3 創(chuàng)建數(shù)據(jù)通訊對(duì)象。(ACE_SOCK_Stream)
            ??? 4 設(shè)置服務(wù)器地址。(ACE_INET_Addr::set)
            ??? 5 將地址作為參數(shù)傳給被動(dòng)連接對(duì)象,啟動(dòng)接收(ACE_SOCK_Acceptor::open)
            ??? 6 將數(shù)據(jù)通訊對(duì)象傳給被動(dòng)連接對(duì)象,啟動(dòng)接收,接受連接(ACE_SOCK_Connector::accept)
            ??? 7 利用通訊對(duì)象接收和發(fā)送數(shù)據(jù)。(ACE_SOCK_Stream::recv和ACE_SOCK_Stream::send)

            posted on 2007-02-25 19:30 walkspeed 閱讀(12207) 評(píng)論(10)  編輯 收藏 引用 所屬分類(lèi): ACE Farmeworks

            FeedBack:
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2007-12-03 22:04 | rolltech
            據(jù)說(shuō)ACE很難,所以一直沒(méi)學(xué),閣下寫(xiě)的這篇文章很容易看懂,這個(gè)client/server程序在我的FreeBSD系統(tǒng)上運(yùn)行的沒(méi)絲毫差錯(cuò),問(wèn)問(wèn):ACE到底難不難啊?  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)[未登錄](méi)
            2007-12-11 10:31 | walkspeed
            重點(diǎn)在于對(duì)網(wǎng)絡(luò)程序的client和server的理解。

            client是個(gè)什么東西,要做什么。
            server是個(gè)什么東西,要做什么。

            再去看ACE就好明白了。

            ACE給了很多模式。要去理解。

            ACE并不是一個(gè)單純的網(wǎng)絡(luò)庫(kù)。其實(shí)是個(gè)系統(tǒng)級(jí)的c++API。如果做網(wǎng)絡(luò)程序,現(xiàn)關(guān)注網(wǎng)絡(luò)部份就可以了。

            最好現(xiàn)了解socket編程,并寫(xiě)幾個(gè)小程序練手  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2007-12-11 19:39 | rolltech
            謝謝了,真有些躍躍欲試了,兩年前就聽(tīng)說(shuō)過(guò)ACE了,那時(shí)聽(tīng)到一句話(huà):是否學(xué)習(xí)ACE要慎重考慮,對(duì)某些人值得......所以被這話(huà)嚇著,也許ACE并不難  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)[未登錄](méi)
            2007-12-11 21:32 | eXile
            這篇文章說(shuō)的還是socket編程的模型。
            使用ACE,主要用的還是Reactor或Proacoter框架,到那時(shí),還認(rèn)為ACE不難的,那都是高手。。。  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2008-03-06 03:51 | rolltech
            樓主能不能用python寫(xiě)個(gè)這樣的模型啊?我很菜的  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2009-11-19 09:16 | csuwqz
            有沒(méi)有非阻塞模式的啊?  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2010-04-14 16:27 | archxm
            這只是一個(gè)包裝外觀,哪稱(chēng)的上什么基本框架!  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2012-12-21 15:23 | 曾剛
            難于上青天@rolltech
              回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2013-10-10 12:05 | yangy
            實(shí)現(xiàn)windows作為client, linux作為Server的c/s通信,網(wǎng)絡(luò)該怎樣配置?ip地址不能指定為127.0.0.1了吧?  回復(fù)  更多評(píng)論
              
            # re: ACE中網(wǎng)絡(luò)通訊編程基本架構(gòu)
            2013-10-10 12:12 | yangy
            @yangy這兩段程序,我都在windows下或者都在linux下運(yùn)行,通信都是可以的,但一個(gè)在linux下,一個(gè)在windows下,兩者就連接不上了,樓主給解答下嗎?麻煩您了!@yangy
              回復(fù)  更多評(píng)論
              

            <2007年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿(4)

            隨筆分類(lèi)(64)

            隨筆檔案(58)

            文章分類(lèi)(3)

            文章檔案(3)

            相冊(cè)

            收藏夾(9)

            C++零碎

            好友

            搜索

            •  

            積分與排名

            • 積分 - 161400
            • 排名 - 163

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久精品成人免费网站| 亚洲va久久久噜噜噜久久| 日韩精品久久久久久| 国产999精品久久久久久| 久久九色综合九色99伊人| 久久高清一级毛片| 精品久久人人爽天天玩人人妻| 国产一久久香蕉国产线看观看| 久久99国产亚洲高清观看首页| 久久人人爽人爽人人爽av | 久久精品中文无码资源站| 久久久久亚洲精品天堂| 久久久久无码中| 精品无码久久久久国产| 久久天天躁狠狠躁夜夜2020| 久久久久亚洲AV无码永不| 久久久久久国产精品免费免费| 成人综合伊人五月婷久久| 香蕉久久久久久狠狠色| 国产精品9999久久久久| 久久久久久午夜精品| 色综合久久精品中文字幕首页| 国产成人久久精品一区二区三区 | 狠狠人妻久久久久久综合蜜桃| 久久国产劲爆AV内射—百度| 久久青青国产| 国产无套内射久久久国产| 久久精品国产99久久久| 久久国产劲爆AV内射—百度| 四虎国产精品成人免费久久| 中文字幕亚洲综合久久2| 久久香综合精品久久伊人| 久久天天躁狠狠躁夜夜96流白浆| 一本大道久久东京热无码AV | 区久久AAA片69亚洲| 久久亚洲2019中文字幕| 亚洲国产精品一区二区久久| 2021久久国自产拍精品| 国产日产久久高清欧美一区| 国内精品久久久久影院优 | 久久只有这精品99|