基本了解
大多数程序员有很多种方式与其他程序打交道,文件,网络吗,串口,控制台等等。有时网络一个单独的IO操作需要很久才能完成。这给网络编程带来了很大的挑战。
Boost.Asio库提供很多工具用于管理这些耗时长的操作,而且不需要基于线程和锁的并发模型。
Boost.Asio库是为使用C++进行系统编程的程序员准备的,因为他们经常会需要网络。特别说明,Boost.Asio有以下目标:
1.可移植性. 该库要支持一系列常用的操作系统,在各种平台上提供一致的行为
2.可扩展性. 该库能够给大并发的网络连接开发提供便利,该库为每种操作系统都提供最大可能的可扩展性。
3.效率. 该库会提供scatter-gather I/O之类的技术,将程序中的数据copy减小到最小。
4.模型建立在类似BSD sockets的API之上. BSD socket API并广泛理解和应用,而且有很多的参考文献。其他编程语言经常用相似接口的API。为了尽可能的合理,Boost.Asio
库都是建立在现有的应用的基础之上的。
5.易于使用. Asio库为新人提供可一个更低的门槛,Asio库更像是一个工具包,而不是一个框架(FrameWork)。这将会最大程度的减小前期的投资,只需要学习一些简单的约定
即可。毕竟对于用户来说,一个库只需要理解那些需要使用的部分就可以了。
6.对更高层的抽象做基础. Boost库允许其他库在之上建立更高层次的抽象。比如用Boost作为实现Http协议的基础。
本文详细介绍了Boost.Asio库在系统编程中如何帮助解决网络操作的挑战,包括其目标如可移植性、可扩展性、效率、模型建立在现有应用基础上以及易于使用等特性。
1077

被折叠的 条评论
为什么被折叠?



