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
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 #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. 编译,成功;运行,成功。