电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C++网络编程学习笔记(ACE)

C++网络编程学习笔记(ACE)_第1页
1/16
C++网络编程学习笔记(ACE)_第2页
2/16
C++网络编程学习笔记(ACE)_第3页
3/16
前言 面向对象中间件体系结构 a) 主机基础设施中间件:封装socket,线程等不同主机的实现,形成统一的接口。如java,ACE b) 分布式中间件:连接管理,内存管理,整编,解编,端点和请求的多路分离,同步,多线程等,使程序员象开发独立应用程序一样开发分布式应用程序。分布式中间件的核心是 ORB(Object Requests Broker对象请求代理),如:COM+,JAVA RMI,CORBA 1 通信设计空间 1.1 面向连接协议 需要做出如下设计:  数据成帧策略  连接多路复用策略 1. 链接多路复用:多个线程复用同一个 TCP 链接 2. 非多路复用:多个进程使用多个链接。系统开销大 1.2 同步和异步消息交换 1.3 消息传递与共享内存 消息传递:消息中间件 共享内存:  本地共享内存:shmget(),shmat(). 内存映射文件  分布式共享内存:虚拟内存,是本地共享内存的一种抽象。 2 SOCKET API 概述 3 ACE Socket wrapper façade 3.1 ACE_Addr 运算符 == , != addr_type, addr_size 3.2 ACE_INET_Add 3.3 ACE_IPC_SAP 为其他ACE 对象提供了基本的“I/O”句柄操作能力 enable() disable() get_handle() set_handle() 3.4 ACE_SOCK 继承自 ACE_IPC_SAP, get _local_addr() set_local_addr() open() close() get_remote_addr() set_option() get_option() 3.5 ACE_SOCK_Connecter 主动 连接模式,是 一个工厂 类。发起一个 连接,并 在连接成功后 初始化一 个ACE_SOCK_Stream 对象。 可以通过“阻塞”“非阻塞”“定时”方式发起。 以下是非阻塞模式 以下是非阻塞模式 3.6 ACE_SOCK_Stream 数据传输角色的实现。 Send() Recv() Send_n() Recv_n() Recvv_n() //使用分散读取系统函数,高效、完整读取多个缓冲区,参数 iovec[] Sendv_n() //使用集中写入系统函数,高效、完整写入多个缓冲区 Enable(ACE_NOBLOCK) 3.7 ACE_SOCK_Acceptor 被动连接模式的实现。相当于 accept() 是一个工厂类,初始化一个 ACE_SOCK_Stream Open() Accept() 3.8 ACE_Mem_Map 通过内存映射文件机制,将文件映射到内存中,以便及时读取,提高了效率。此外,内存映射文件还可以被多个进程共享。 4 网络日志服务程序的实现 4.1 ACE_Message_Block 标准的消息管理包括: 1) 收到消息后,保存到缓冲区 2) 添加和删除消息的头和尾 3) 将消息分段,或重新组装,以适应网络的最...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C++网络编程学习笔记(ACE)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部