ACE开发指南初级

上传人:M****1 文档编号:500664238 上传时间:2023-11-01 格式:DOC 页数:82 大小:2.10MB
返回 下载 相关 举报
ACE开发指南初级_第1页
第1页 / 共82页
ACE开发指南初级_第2页
第2页 / 共82页
ACE开发指南初级_第3页
第3页 / 共82页
ACE开发指南初级_第4页
第4页 / 共82页
ACE开发指南初级_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《ACE开发指南初级》由会员分享,可在线阅读,更多相关《ACE开发指南初级(82页珍藏版)》请在金锄头文库上搜索。

1、CJ000032RAS-001开发指南 Made by Expert TeamACE开发指南(初级)上海超捷系统集成有限公司,199753/82文档信息作者郑明智创建日期2006-12-19版本1.0部门名称开发部修订文档历史记录日期版本说明作者2006-12-191.0Reactor郑明智2006-12-271.1增加Proactor的内容郑明智2006-12-281.2增加ACE Task的内容郑明智目录1.介绍11.1目的11.2文档协定11.3阅读者建议11.4术语说明11.5翻译约定21.6相关资料21.7参考文献21.8补充说明22.ACE简介及环境搭建32.1ACE简介32.2本

2、指南的主要内容32.3获取ACE42.4编译ACE42.4.1为什么要编译ACE42.4.2在Window上编译42.4.3在Linux上编译52.5前行的路标63.ACE REACTOR框架63.1Reactor(反应器)框架63.1.1ACE_Event_Handler(事件处理器)73.1.2ACE_Reactor93.2Acceptor(接受器)-Connector(连接器)框架113.2.1ACE_Svc_Handler(服务处理器)123.2.2ACE_Acceptor143.2.3ACE_Connector153.3ACE Reactor Server (Demo)173.3.1

3、需求173.3.2实现173.3.3ACE工具类253.3.4Server改进263.4ACE Reactor Client (Demo)293.4.1需求293.4.2实现I293.4.3使用超时机制发送消息333.4.4实现II333.5前行的路标374.ACE PROACTOR框架384.1Proactor(前摄器)框架384.1.1异步I/O工厂类394.1.2ACE_Handler(完成处理器)414.1.3ACE_Message_Block424.1.4ACE_Proactor434.2前摄式Acceptor-Connector框架444.2.1ACE_Service_Handle

4、r454.2.2ACE_Asynch_Acceptor464.2.3ACE_Asynch_Connector464.3既生Proactor,何生Reactor (二者的应用范围)464.4ACE Proactor Server (Demo)474.4.1需求474.4.2实现474.5前行的路标545.ACE TASK框架555.1我们的新需求555.2Task(任务)框架555.3ACE_Message_Queue565.4ACE_Task595.5Demo(Reactor Client的改写)615.5.1需求615.5.2实现615.6基本的线程安全性715.6.1互斥体(Mutex)7

5、15.6.2守卫(Guard)755.7前行的路标766.总结777.常见问题77CJ000028RAS-001开发指南 Made by Expert Team1. 介绍1.1 目的 本指南作为使用ACE框架开发应用程序的参考,以期能够对使用ACE框架的同事有所帮助。1.2 文档协定本文档的书写遵循公司定义的文档规范。本指南写作时,ACE最新的稳定版本为5.5版。本指南中观点和代码并不保证适用于后续的ACE版本。本指南旨在帮助新手入门,如果您已对ACE有一定使用经验并想更深入了解ACE,建议您阅读ACE的相关书籍。1.3 阅读者建议本指南假定阅读者有C+的开发经验和通信程序的开发经验,文档中C

6、+及Socket等开发知识及相关概念不再赘述。1.4 术语说明C/S Client/Server 客户端/服务器架构Client 客户端Server 服务器ACE 自适配通信环境 (Adaptive Communication Environment)Reactor 反应器,高效的事件多路分离和分派提供可扩展的面向对象框架Proactor 前摄器aio 异步I/OAsynchronous I/O 异步I/OEpoll Linux从2.6开始支持的异步事件I/O技术1.5 翻译约定Method/Function 方法Nested Class 内部类Callback 回调Hook Method 挂

7、钩方法Handle 句柄Template 模板Daemon 守护Override/ Overwrite 覆盖Overload 重载1.6 相关资料ACE-5.5.zipMagic C+ 3.51.7 参考文献1 ACE程序员指南 网络与系统编程的实用设计模式2 C+网络编程(卷1) 运用ACE和模式消除复杂性3 C+网络编程(卷2) 基于ACE和框架的系统化复用4 ACE自适配通信环境中文技术文档 中篇 ACE程序员教程5 ACE API 列表6 ACE 源代码1.8 补充说明1 本文档中提到的资料,工具,代码都放在了 相关资料放在192.168.0.20upload开发部技术组ACE 目录下

8、。2 如果您发现本指南有错误或者疏漏,请通知作者修改,以使本指南能够更好的帮助大家。2. ACE简介及环境搭建2.1 ACE简介ACE自适配通信环境 (Adaptive Communication Environment)是面向对象的框架和工具包,它为通信软件实现了核心的并发和分布式模式。ACE包含的多种组件可以帮助通信软件的开发获得更好的灵活性、效率、可靠性和可移植性。ACE中的组件可用于以下几种目的: 并发和同步 进程间通信(IPC) 内存管理 定时器 信号 文件系统管理 线程管理 事件多路分离和处理器分派 连接建立和服务初始化 软件的静态和动态配置、重配置 分层协议构建和流式框架 分布式

9、通信服务:名字、日志、时间同步、事件路由和网络锁定,等等。 上面是比较官方的介绍。总之,如果你想用C+实现一个通信程序,而你又不想纠缠于Windows/Linux等各平台不同的Socket细节,那就可以考虑ACE框架。ACE经过10余年的开发,已经不仅仅是通信的包,还实现了很多其它功能比如内存管理,文件系统管理等,可以满足您大多数开发的需要。而且ACE是被全世界很多项目采用的可以称的上是电信级别的框架。ACE是跨平台的,完全可以在Windows上开发,运行在Linux上(当然,与Java不完全相同的是您需要重新编译链接。而且如果您的程序使用了GUI的包,这么做是行不通的)。ACE的简介就到这里

10、。当我们使用ACE开发了一些程序,对ACE有了一定的认识之后,再回过头来进一步认识ACE。2.2 本指南的主要内容本指南的目标是ACE 零基础 到 可以用ACE开发一些简单的C/S程序。因此本指南的主要内容有:1ACE的获取编译首先介绍如何搭建ACE开发环境的问题。2ACE Reactor/Proactor框架接下来本文并不打算像其它ACE的书籍从ACE历史介绍,基础机制讲起,而是直接进入Reactor/Proactor框架的介绍及使用这2个框架来开发程序,给初学者最想要的东西。3ACE其他机制最后对ACE的其他框架机制等做一概要介绍,比如ACE_Task机制,线程管理,同步机制等。2.3 获

11、取ACE从服务器上获取ACE-5.5.zip。或者从http:/download.dre.vanderbilt.edu/previous_versions/ 下载你需要的ACE版本。2.4 编译ACE2.4.1 为什么要编译ACE应用程序在链接及运行时需要使用ACE的库和dll文件(Windows),而你下载的包里没有这些文件或者不适合你的平台。这时候就需要自己编译ACE。编译一般来说需要花很长时间。注1:项目组的其他人或者公司里的同事可能已经有编译好的库文件,如果你不想花时间编译ACE,可以向其他人索取。服务器上有ace5.3版本在gcc2.96/3.23编译通过的rpm文件,如果适合你的平

12、台,直接安装即可。注2:下面的在Windows/Linux编译部分取自陈昕发的贴,本文做了适当修改。文中目录等请注意修改成符合你的环境的目录等。陈昕原贴在 http:/192.168.0.18/bbs/viewthread.php?tid=1085&fpage=1 2.4.2 在Window上编译1. 解压缩到本地目录例:解压缩到C:ACE_wrappers2.查看安装向导ACE有自带的安装向导文件C:ACE_wrappersACE-INSTALL.html查看ACE-INSTALL.html文件中的Building and Installing ACE on Windows with Mic

13、rosoft Visual C+章节,按照上面所写即可,下面是对此过程的总结3.确定编译环境本文使用的是C+.net framework 1.1,以下为该编译环境下的步骤4.新建config.h文件由于ACE支持很多操作系统,因此必须建立一个config.h文件,在该文件包含相应的操作系统的头文件,从而让ACE知道将在什么操作系统下进行编译进入C:ACE_wrappersace目录,新建config.h文件,在config.h文件中添加#include ace/config-win32.h如果系统为Windows98/Me,那么需要添加#define ACE_HAS_WINNT4 0如果需要使用标准C+的类库(例iostream等),那么需要添加#define ACE_HAS_STANDARD_CPP_LIBRARY 1如果需要使用MFC(不推荐),那么需要添加#define ACE_HAS_MFC 15.设置环境变量开始-运行-cmdset ACE_ROOT=C:ACE_wrappers6.使用.net环境编译打开ACE.sln,可进行debug/release编译7.生成.lib.dll文件生成的lib和dll文件在C:ACE_wrapperslib。2.4.3 在Linux上编译

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号