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

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

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

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

2. VC目录里加入包含文件ACE_wrappers\和库文件ACE_wrappers\lib\。
3. 在项目属性里加入库文件,Debug模式加入ACEd.lib,Release模式加入ACE.lib。
4. 将ACE_wrappers\lib\目录设置为项目调试的运行目录,或加到系统环境变量中。
4. 编译,成功;运行,成功。