asio c++ 库文档学习

Asio 是一个跨平台的C++库,用于网络和底层IO编程,以现代C++方式提供给开发者一个一致异步模型。

概览

原理

大多数程序以某种方式与外部世界交互,不论它通过文件,网络,串行电缆,或者控制台。以网络为例,有时单独一次的I/O操作要花费很长时间才能完成。这对程序开发造成了特别的挑战。

Asio提供了工具来管理这些长运行的操作,不需程序使用基于线程和眀锁的并发模型。

Asio库是为用C++做系统编程的编程者们准备的,这里访问操作系统功能例如网络是频繁的。特别的,Asio定位以下目标:

可移植性。库应该支持一系列常用的操作系统,并且在这些系统间提供一致的行为。

可伸缩性。库应该方便扩展到数千并发连接的网络程序的开发。每种操作系统的库实现应该用使伸缩性最好的机制。

高效。库应该支持例如分散汇集I/O的技术,使程序能够最小化数据拷贝。

已创建API的模型概念,例如BSD sockets。BSD socket API 是被广泛实现和理解的,并且涵盖许多文献。其他编程语言经常给网络APIs一个更小的接口。到目前为止合理的是,Asio应该利用现有做法。

易用。库应该为新用户提供工具箱,而不是框架,方法,以降低入门障碍。也就是,它应该尝试最小化前期时间投入,只需要学习少数基本规则和指导。然后,库使用者应该只需要理解被使用的特定函数。

进一步抽象基础。库应该是开发其他提供高层抽象库的基础。例如,实现通用协议如HTTP。

尽管Asio开始其生命主要在网络方面,它的异步I/O的概念已经扩展到了如串口,文件描述符等其他操作系统资源。

ps:看懂和翻译真不是一个难度。

posted @ 2012-08-18 21:34  国超  阅读(933)  评论(0编辑  收藏  举报