ace通信框架_学习与ACE框架的进程间通信

对于大多数程序员而言,进程间通信(IPC)与使用Socket API是同义词。 套接字API最初是为UNIX®平台开发的,旨在在TCP / IP协议之上提供应用程序级别的接口。 它支持多种功能,其中一些功能如表1所示。 常用缩略语 API:应用程序编程接口 TCP / IP:传输控制协议/ Internet协议 表1.构成Socket API一部分的旧式C例程 ...
摘要由CSDN通过智能技术生成

对于大多数程序员而言,进程间通信(IPC)与使用Socket API是同义词。 套接字API最初是为UNIX®平台开发的,旨在在TCP / IP协议之上提供应用程序级别的接口。 它支持多种功能,其中一些功能如表1所示。

表1.构成Socket API一部分的旧式C例程
C函数名称 提供的功能
socket 分配新的套接字句柄
bind 将套接字句柄与本地或远程地址相关联
listen 被动侦听传入的客户端连接请求的例程
connect 客户端计算机使用connect例程开始TCP握手; 服务器使用accept例程来接受连接请求
send 例行数据传输
recv 例行接收数据

使用本机Socket API存在几个问题。 首先,尽管API的遗留C函数几乎无处不在,但它们却不可移植。 例如,Windows®中的socket方法返回类型为SOCKET的句柄,而在UNIX中,相同的函数返回整数。 有些方法(如closesocket仅存在于Windows中,更不用说不兼容的标头了。 此外,本机API的许多错误仅在运行时出现,例如,地址或协议不匹配或未初始化的数据成员。

自适应通信环境(ACE)框架定义了解决这些问题的一组包装外观。 本文剖析了ACE在相同或不同主机之间为IPC提供的一些基于C++的,面向对象的类。

用于网络编程的ACE类

表2显示了ACE为TCP / IP连接定义的一些基本类。

表2. ACE中用于网络编程的类
ACE班 提供的功能
ACE_Addr ACE中的基类; 用于网络寻址
ACE_INET_Addr 源自ACE_Addr ; 用于Internet域名寻址
ACE_SOCK ACE套接字包装外观层次结构的基类: ACE_SOCK_AcceptorACE_SOCK_Connector
ACE_SOCK_Acceptor 用于建立被动连接; 从概念上讲类似于Berkeley Software Distribution(BSD)的accept()listen()例程
ACE_SOCK_Connector 在流对象和远程主机之间建立连接; 在概念上类似于BSD connect()例程
ACE_SOCK_Stream 用于处理面向TCP连接的数据传输的类

对于用户数据报协议(UDP)通信,使用ACE_SOCK_Dgram类及其变体。 声明这些对象的头文件位于您安装的$ ACE_ROOT / ace / include区域中。 相关标头被适当命名为SOCK_Acceptor.h,SOCK_Listener.h,SOCK_Stream.h,依此类推。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值