博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asio c++ 库文档学习
阅读量:4646 次
发布时间:2019-06-09

本文共 751 字,大约阅读时间需要 2 分钟。

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:看懂和翻译真不是一个难度。

转载于:https://www.cnblogs.com/-chaos/archive/2012/08/18/2645838.html

你可能感兴趣的文章
流量调整和限流技术 【转载】
查看>>
正由另一进程使用,因此该进程无法访问此文件。
查看>>
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
MyEclipse安装Freemarker插件
查看>>
计算多项式的值
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
最强的篮球队和马尔可夫模型
查看>>
pyQt 每日一练习 -- 登录框
查看>>
wp 删除独立存储空间文件(多级非空文件夹删除)
查看>>
Loadrunner安装使用入门
查看>>
smartupload 上传文件时 把页面编码改成gbk 解决乱码
查看>>
EPS是什么格式
查看>>
Python的数据库操作(Sqlalchemy)
查看>>
2.抽取代码(BaseActivity)
查看>>
My simplified pickit2 clone
查看>>
Redis 入门知识
查看>>
夏天过去了, 姥爷推荐几套来自smashingmagzine的超棒秋天主题壁纸
查看>>
转--Android如何在java代码中设置margin
查看>>