文档章节

BOOST.ASIO源码剖析(一)

moki_oschina
 moki_oschina
发布于 04/11 14:35
字数 614
阅读 103
收藏 1

 前言

源码之前,了无秘密。
                                                       ——侯捷

      Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。


      boost.asio是Boost库中非常著名的I/O组件,是用于网络和低层IO编程的跨平台C++库,为开发者提供了C++环境下稳定的异步模型。其在性能、移植性、扩展性等方面均为人称道,甚至被很多业内人士称为“网络神器”。asio是目前唯一有希望进入C++标准库以弥补标准库在网络方面的缺失的C++网络库,因此对asio的学习在某种意义上可以说是学习C++网络编程的必修课。

      当前网络上从用户角度介绍asio的文献很多也很完善,所以本文决定另辟蹊径,从asio源码角度出发,由内而外、深入浅出地剖析asio的架构和设计理念,将asio的一切秘密呈现在读者眼前。

      本文适合已有较完善的C++基础知识、具备一定程度的泛型技术和面向对象技术、并对boost.asio有一定的了解的读者。

      首先,本文先从面向对象的角度对asio的架构开始剖析,由粗至细。先让读者对asio有一个高屋建瓴的认识,再逐步细化,最终透彻地了解asio的架构。
      然后,本文以Windows平台下的Tcp协议为例,以跟踪流程的方式探究asio的运作原理。(如果作者时间充足或有读者愿意共享,后续会给出其他平台下的流程)
      再次,本文从泛型编程的角度对asio的架构做进一步剖析。在此,读者将会看到asio中的各个泛型组件、泛型约束/概念(concepts)、扩展方向与方法、以及泛型技术与面向对象技术的完美结合。
      最后,本文从用户的角度分析asio的优缺点,再分享一个基于asio封装的开源网络库<asioex>,力求扬长避短、充分发挥asio的强大威力。

本文转载自:http://www.cnblogs.com/yyzybb/p/3795238.html

共有 人打赏支持
moki_oschina
粉丝 25
博文 191
码字总数 39962
作品 0
成都
程序员
私信 提问
libevent源码深度剖析

作者:http://blog.csdn.net/sparkliang/article/category/660506 libevent源码深度剖析十三——libevent信号处理注意点 libevent源码深度剖析十三——libevent信号处理注意点前面讲到了lib...

晨曦之光
2012/03/09
2.6K
0
Boost.Asio技术文档

Christopher Kohlhoff Copyright © 2003-2012 Christopher M. Kohlhoff 以Boost1.0的软件授权进行发布(见附带的LICENSE10.txt文件或从http://www.boost.org/LICENSE1_0.txt) Boost.Asio是用......

LUIS1983
2016/12/23
20
0
YYWebImage 源码剖析:线程调度与缓存策略

系列文章: YYCache 源码剖析:一览亮点 YYModel 源码剖析:关注性能 YYAsyncLayer 源码剖析:异步绘制 YYImage 源码剖析:图片处理技巧 YYWebImage 源码剖析:线程调度与缓存策略 引言 在 ...

indulge_in
07/21
0
0
【写书评赠书活动】《Unix内核源码剖析》

赠书活动不能停!本次图灵教育携手开源中国一起赠书啦! 本期活动的赠书是超级计算机“京”的L1缓存设计者青柳隆宏经典著作《Unix内核源码剖析》! 图书介绍 书名:《Unix内核源码剖析》 书号...

图灵教育
2014/03/19
6.2K
52
Java8新特性及实战视频教程完整版

百度网盘 资料 第1讲:课程介绍 第2讲:课程介绍续 第3讲:Lambda表达式初步与函数式接口 第4讲:深入函数式接口与方法引用 第5讲:Lambda表达式深入与流初步 第6讲:Function接口详解 第7讲...

远近高低各不同
11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于redis的分布式锁

redisson提供了基于redis的分布式锁实现方式,本文就尝试了下锁的使用方式。Redisson同时还为分布式锁提供了异步执行的相关方法,第二节执行介绍。 一、可重入锁验证 同一个jvm里面同一线程的...

noob_chr
16分钟前
3
0
CPU性能过剩提升乏力影响未来行业发展吗?

虽然CPU仍然在不断发展,但是它的性能已经不再仅仅受限于单个处理器类型或制造工艺上了。和过去相比,CPU性能提升的步伐明显放缓了,接下来怎么办,成为横亘在整个行业面前的大问题。 自201...

linux-tao
18分钟前
1
0
设计模式“6”大原则!

面向对象设计原则 概述 对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要...

Java干货分享
35分钟前
7
0
mybatis学习(1)

JDBC连接方式: 1.底层没有使用连接池,操作数据库需要频繁的创建和关闭连接,消耗资源。 2.写原生的JDBC代码在JAVA中,一旦需要修改SQL的话(比如表增加字段),JAVA需要整体重新编译,不利...

杨健-YJ
今天
5
0
怎么组织文档

可以从以下几个方面考虑组织文档: ☐ 各种分支的界面截图和对应的类及文件 ☐ 框架或类图 ☐ 流程图 ☐ 时序图 ☐ 注意事项

-___-
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部