《2022年ACE中网络通讯编程基本架构 .pdf》由会员分享,可在线阅读,更多相关《2022年ACE中网络通讯编程基本架构 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ACE 中网络通讯编程基本架构ACE_INET_Addr类,包装了网络地址ACE_SOCK_Connector类,扮演主动连接角色,发起通讯连接。连接到远端的服务。ACE_SOCK_Acceptor类,扮演被动连接角色,等待连接。等待远端客户的请求。ACE_SOCK_Stream类,扮演数据通讯角色,发送和接收数据。完成客户与服务之间的通讯。利用 ACE 库来开发网络通讯程序是很简单的,一个基本程序只用到以上提到的几个类,就可以完成一个基于客户端、服务器端模型的网络应用的开发。开发者无需了解Socket在不同平台上的实现,记忆众多并相互关联的Socket APIs 。一下以一个Hello Wo
2、rld程序为演示。客户端程序。发送一个Hello World到远端的服务器,并接收服务器返回的信息,将信息打印在屏幕上。#include #include #include #include #include #include int main( int argc, char* argv ) ACE:init();/初始化 ACE 库,在 windows下一定要 std:string str = hello world; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4
3、 页 - - - - - - - - - / 设置服务器地址 / 第一个参数是端口,第二个是ip 地址,也可以是域名。 / 可以先定义一个地址对象,再用ACE_INET_Addr的 set 函数来设定。 / 地址的配置很多,具体的参照文档 ACE_INET_Addr peer_addr( 5050, 127.0.0.1 ); ACE_SOCK_Stream peer_stream;/定义一个通讯队形 ACE_SOCK_Connector peer_connector;/定义一个主动连接对象 peer_connector.connect( peer_stream, peer_addr );/发起
4、一个连接 peer_stream.send( str.c_str(), str.length() );/发送数据到服务器 str.erase(); str.resize( sizeof( hello world ) ); peer_stream.recv( (void*)str.c_str(), str.length() );/接收来自服务器的信息 std:cout from server message : str std:endl; ACE:fini(); return 0; 服务器端代码。接收一个远端的连接,将接收到的信息打印在屏幕上,并将接收到的信息返回给客户端。#include #i
5、nclude #include #include #include 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 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_SO
6、CK_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_s
7、tr(), str.length() ); ACE:fini(); return 0; 以上代码需要ACE 库才能运转 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 利用 ACE 编程的基本框架。客户端1 创建地址对象。(ACE_INET_Addr)2 创建主动连接对象。(ACE_SOCK_Connector)3 创建数据通讯对象。(ACE_SOCK_Stream)4 设置服务器地址。(ACE_INET_Addr:set)5
8、将数据通讯对象和地址作为参数传给主动连接对象,发起主动连接(ACE_SOCK_Connector:connect )6 利用通讯对象接收和发送数据。(ACE_SOCK_Stream:recv和 ACE_SOCK_Stream:send)服务器端1 创建地址对象。(ACE_INET_Addr)2 创建被动连接对象。(ACE_SOCK_Connector)3 创建数据通讯对象。(ACE_SOCK_Stream)4 设置服务器地址。(ACE_INET_Addr:set)5 将地址作为参数传给被动连接对象,启动接收(ACE_SOCK_Acceptor:open)6 将数据通讯对象传给被动连接对象,启动接收,接受连接(ACE_SOCK_Connector:accept)7 利用通讯对象接收和发送数据。(ACE_SOCK_Stream:recv和 ACE_SOCK_Stream:send)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -