ACE中的流包装提供面向连接的通信。
基于TCP/IP传输协议需要如下ACE类库:
- ACE_SOCK_Acceptor 用于被动的建立连接。用于服务器端
- ACE_SOCK_Connector 用于主动的连接建立。用于客户端
- ACE_SOCK_IO 用于提供面向连接的消息传递服务。封装了send()、recv()和write()等调用。该类是ACE_SOCK_Stream的基类。
- ACE_SOCK_Stream 用于提供基于TCP(传输控制协议)的面向连接的消息传递。派生自ACE_SOCK_IO,并提供了更多的包装方法。
- ACE_INET_Addr 地址包装类
-下面是一个简单的例子:
服务器端头文件server.h
#pragma once
#define WIN32
//练习ACE TCP连接server端
#include<ace/SOCK_Acceptor.h>
#include<ace/SOCK_Stream.h>
#include<ace/Log_Msg.h>
#include<ace/OS_NS_stdlib.h>
#include<ace/Time_Value.h>
#define SIZE_DATA 18
#define SIZE_BUF 1024
#define NO_ITERATIONS 5
class Server
{
public:
Server(int port) :server_addr_(port), peer_acceptor_(server_addr_)
{
//server_addr_.set(50000); //也可在初始化时设置端口号
data_buf_ = new char[SIZE_BUF];
}
int handle_connection();
int accept_connections();
~Server(){}
private:
char *data