ACE学习笔记(2)——第一个例子:TCP

  从网上看到一个简单的例子(抱歉,忘记出处了),准备拿来编译看看。
  1. 在VC里新建一个工程,将代码放进去。
 1    //服务器端代码:
 2    #include <iostream>
 3    #include <string>
 4    
 5    #include <ace/ACE.h>
 6    #include <ace/SOCK_Acceptor.h>
 7    #include <ace/SOCK_Stream.h>
 8    
 9    int main( int argc, char* argv[] )
10    {
11        ACE::init();
12    
13        std::string str;
14        str.resize( sizeof"hello world" ) );
15    
16        //设置服务器地址
17        ACE_INET_Addr peer_addr( 5050"127.0.0.1" );
18    
19        ACE_SOCK_Stream peer_stream;
20    
21        //创建被动连接角色对象
22        ACE_SOCK_Acceptor peer_acceptor;
23        //开启被动连接对象,将对象绑定到一个地址上
24        peer_acceptor.open( peer_addr );
25    
26        //等待连接
27        peer_acceptor.accept( peer_stream );
28    
29        //数据通讯
30        peer_stream.recv( (void*)str.c_str(), str.length() );
31        std::cout << "from client message : " << str << std::endl;
32        peer_stream.send( str.c_str(), str.length() );
33    
34        ACE::fini();
35        system("pause");    // 这句是我加的,为了看得方便点
36        return 0;
37    }

38

 1  //客户端代码:
 2    #include <iostream>
 3    #include <string>
 4    
 5    #include <ace/ACE.h>
 6    #include <ace/INET_Addr.h>
 7    #include <ace/SOCK_Connector.h>
 8    #include <ace/SOCK_Stream.h>
 9    
10    int main( int argc, char* argv[] )
11    {
12        ACE::init();//初始化ACE库,在windows下一定要
13    
14        std::string str = "hello world";
15    
16        //设置服务器地址
17        //第一个参数是端口,第二个是ip地址,也可以是域名。
18        //可以先定义一个地址对象,再用ACE_INET_Addr的set函数来设定。
19        //地址的配置很多,具体的参照文档
20        ACE_INET_Addr peer_addr( 5050"127.0.0.1" );
21        ACE_SOCK_Stream peer_stream;//定义一个通讯队形
22    
23        ACE_SOCK_Connector peer_connector;//定义一个主动连接对象
24        peer_connector.connect( peer_stream, peer_addr );//发起一个连接
25    
26        peer_stream.send( str.c_str(), str.length() );//发送数据到服务器
27    
28        str.erase();
29        str.resize( sizeof"hello world" ) );
30        peer_stream.recv( (void*)str.c_str(), str.length() );//接收来自服务器的信息
31    
32        std::cout << "from server message : " << str << std::endl;
33    
34        ACE::fini();
35        system("pause");    // 这句是我加的,为了看得方便点
36        return 0;
37    }
   
  2. VC目录里加入包含文件ACE_wrappers\和库文件ACE_wrappers\lib\。
  3. 在项目属性里加入库文件,Debug模式加入ACEd.lib,Release模式加入ACE.lib。
  4. 将ACE_wrappers\lib\目录设置为项目调试的运行目录,或加到系统环境变量中。
  4. 编译,成功;运行,成功。
posted @ 2007-10-11 14:40  gAmesaceR  阅读(1922)  评论(0编辑  收藏  举报