- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
跨平台网络开发库ASIO开发平台安装简介.doc
跨平台网络开发库ASIO开发平台安装简介
安装过程基于W4U4的虚拟机进行,Windows部分为参考网络资源整理而得。撰写时
1、概述
在网络通讯这一块,已经有许多成熟的框架了,最典型的就是ACE,一个网络通讯设计模式的集大成者。但ACE太重型了,而且其起源于90年代,与标准库的集成不是太好,比如ACE就有自己的容器类。总而言之,ACE是一个庞然大物,威力无穷,但也显得比较笨重。
1.1、Boost::Asio和ACE比较:
ACE是一个很成熟的中间件产品,为自适应通讯环境,但它过于宏大,一堆的设计模式,架构是一层又一层,对初学者来说,有点困难。
ASIO是基本Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。
Boost::Asio是一个高性能的网络开发库,Windows下使用IOCP,Linux下使用epoll。与ACE不同的是,它并没有提供一个网络框架,而是采取组件的方式来提供应用接口。但是对于常见的情况,采用一个好用的框架还是能够简化开发过程,特别是asio的各个异步接口的用法都相当类似。
Boost::Asio是利用当代C++的先进方法,跨平台,异步I/O模型的C++网络库。
ACE ASIO 层次架构 ACE底层是C风格的OS适配层,上一层基于C++的wrap类,再上一层是一些框架(Accpetor, Connector,Reactor等),最上一层是框架上服务 ASIO与之类似,底层是OS的适配层,上一层一些模板类,再上一层模板类的参数化(TCP/UDP),再上一层是服务,它只有一种框架为io_service 涉及范围 包含了日志,IPC,线程,共享内存,配置服务等 只涉及到Socket,提供简单的线程操作 设计模式 主要应用了Reactor,Proactor等 主要应用了Proactor 线程调度 ACE的Reactor是单线程调度,Proactor支持多线程调度 支持单线程与多线程调度 事件分派处理 主要是注册handler类,当事件分派时,调用其handler的虚挂勾函数。实现ACE_Handler/ ACE_Svc_Handler/ACE_Event_handler等类的虚函数 基于函数对象的hanlder事件分派。任何函数都可能成功hanlder,少了一堆虚表的维护,调度上优于ACE 发布方式 开源免费的,不依赖于第三方库, 一般应用使用它时,以动态链接的方式发布动态库 开源免费的,依赖Boost,应用使用时只要include头文件,不需动态库 可移植性 支持多种平台,可移植性不存在问题,但是据说socket编程在linux下有不少bugs 支持多种平台,可移植性不存在问题 开发难度 对程序员要求比较高,要用好它,必须非常了解其框架。在其框架下开发,往往new出一个对象,不知在什么地方释放好 要求程序员熟悉函数对象,函数指针,熟悉boost库中的boost::bind。内存管理控制方便
综上所述,如果应用socket编程,使用ASIO开发比较好,开发效率比较高。ACE适合于理论研究,它本来就是源于Douglas的学术研究。
1.2、asio简介:
asio是一个跨平台的支持异步I/O的网络通讯socket库。异步I/O是一种高效的I/O模型,在Windows平台下这种机制的代表就是IOCP完成端口模型。事实上,asio在Windows平台上的实现就是对IOCP的封装。
C++发展到现在,库的设计风格也越来越趋向于泛型,boost就是一个典型,而且boost社区跟C++标准委员会的密切关系,使得进入boost的程序库有更大的机会加入下一代的C++标准库。
/可以下载到最新版本的boost库,在本文档撰写之日最新版本是1.44,可以下载到最新版本的asio,在本文档撰写之日,最新版本是1.4.5。注意本文档中boost用的是1.43。
如下所示,boost V1.43已经可以在多种OS上使用不同IDE进行编译,因此仅依赖其运行的程序自然也可以进行广泛移植:
Boosts additional test compilers include:
Linux:
Intel 10.1, 11.1 on 32 bit Red Hat Enterprise Linux.
Intel 10.1, 11.0, 11.1 on 64 bit Red Hat Enterprise Linux.
GCC 3.4.6, 4.2.4, 4.3.4, 4.4.3 on Red Hat Enterprise Linux.
GCC 4.3.4, 4.4.3 with C++0x extensions on Red Hat Enterprise Linux.
您可能关注的文档
- 自学考试大纲--情报研究与预测科学(版)..doc
- 自治区普通高校人文社科重点研究基地研究领域隶属学科一览表.doc
- 船舶动力装置参数测量技术.ppt
- 船舶动态管理系统简介.doc
- 船舶基础知识及船舶英语.doc
- 船舶电气自动化可靠性研究.doc
- 花样流水灯的实验报告模板.doc
- 苏三下:《解决问题的策略》教学设计.doc
- 苏教版人体的稳态练习题.doc
- 苏教版六年级数学下册比例尺练习题.doc
- 在全市化学品工业安全生产隐患大排查大整治行动部署大会上的讲话.docx
- 在2025年全市人大代表主题活动推进会上的汇报发言.docx
- 在新任部门党组(党委)领导班子成员落实“一岗双责”培训班上的讲话.docx
- 党委书记在全镇农田水利设施夏修暨抗旱保苗工作会议上的讲话.docx
- 市场监管局党组2025年上半年落实全面从严治党主体责任工作情况报告.docx
- 2025年上半年基层干部个人工作总结.docx
- 校长在2025年新教师培训开班典礼上的讲话.docx
- 市关于预算绩效管理经验交流汇报材料.docx
- 在纪委理论学习中心组专题学习《中华人民共和国监察法实施条例》研讨交流会上的讲话.docx
- 副局长近三年工作总结.docx
最近下载
- 生产与运作管理第五版陈荣秋习题答案.pdf
- 2023-2024学年广东省广州市天河区高一(下)期末物理试卷.pdf VIP
- 重大隐患事故判定标准考试专项测试题及答案.doc
- 人教版小学六年级数学下册期末试卷.pdf VIP
- 光耦测量方法.doc VIP
- BSISO7005-1-2011管法兰.第1部分:工业和通用管道系统用钢制法兰.pdf VIP
- 广东省深圳市语文中考试题与参考答案(2024年).docx VIP
- 部编版初中七年级历史下册知识点总结.docx VIP
- 建筑地基工程施工质量验收标准.GB50202-2018.docx VIP
- 专题06 轴对称常考压轴题型(含答案析)(八年级《新题速递·数学》(人教版)).docx
文档评论(0)