ASIO

本文详细介绍了Boost.Asio库在系统编程中如何帮助解决网络操作的挑战,包括其目标如可移植性、可扩展性、效率、模型建立在现有应用基础上以及易于使用等特性。

基本了解

       大多数程序员有很多种方式与其他程序打交道,文件,网络吗,串口,控制台等等。有时网络一个单独的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协议的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值