ACE中网络通讯编程基本架构
2010-08-22 20:47:10 来源:WEB开发网服务器端代码。接收一个远端的连接,将接收到的信息打印在屏幕上,并将接收到的信息返回给客户端。
#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" ) );
//设置服务器地址
ACE_INET_Addr peer_addr( 5050, "127.0.0.1" );
ACE_SOCK_Stream peer_stream;
//创建被动连接角色对象
ACE_SOCK_Acceptor peer_acceptor;
//开启被动连接对象,将对象绑定到一个地址上
peer_acceptor.open( peer_addr );
//等待连接
peer_acceptor.accept( peer_stream );
//数据通讯
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库才能运转××××
利用ACE编程的基本框架。
客户端
1 创建地址对象。(ACE_INET_Addr)
2 创建主动连接对象。(ACE_SOCK_Connector)
3 创建数据通讯对象。(ACE_SOCK_Stream)
4 设置服务器地址。(ACE_INET_Addr::set)
5 将数据通讯对象和地址作为参数传给主动连接对象,发起主动连接(ACE_SOCK_Connector::connect)
6 利用通讯对象接收和发送数据。(ACE_SOCK_Stream::recv和ACE_SOCK_Stream::send)
更多精彩
赞助商链接