StupidBeauty
Read times:3632Posted at:Sun Oct 16 10:08:21 2016 - no title specified

Boost Asio文档翻译:基本原理,Rationale

大部分程序都会以某种形式与外界进行交互,例如:文件;网络;串行数据线;或者终端。以网络通信为例,某些情况,单个的输入/输出操作都要等待狠长时间才能完成。这就给应用程序的开发带来了特定的挑战。

Boost.Asio提供了一些工具,用于处理长时间的操作,并且还不需要在程序中引入像线程和显式锁这样的并发模型。

Boost.Asio库,主要的目标用户是那些使用 C++ 来进行系统编程的程序员。在系统编程中,通常需要访问操作系统提供的某些功能 ,例如网络功能。具体来说,Boost.Asio专注于达成以下目标:

  • 可移植性。 这个库,应当支持若干 个常用的操作系统,并且, 在所有受支持的操作系统上的行为都是一致的。

  • 可伸缩性。 这个库,应当使得 以它为基础开发的网络应用程序能够 将规模扩大到同时支持 数以千计的并发连接。 这个库,在每个受支持的操作系统上,都应当使用系统 最能够支持此伸缩性的机制来实现。

  • 高效 性。 这个库应当在其实现中利用某些高级特性,例如集散输入输出(scatter-gather I/O),使得实际 的应用程序代码中只需要做最小化的数据复制工作。

  • 遵守已 有大规模应用的应用编程接口的概念模型,例如BSD 套接字接口。 BSD 套接字应用编程接口已经被广泛实现并理解, 在教科书中也被广泛讲解。其它 的编程语言中,通常也会采用类似的接口来设计网络编程接口。 在合理的情况下, Boost.Asio应当遵从已有 的实践经验。

  • 易用 性。 这个库,应当降低新用户的入门门槛,具体来说 ,它应当实现成一个工具集,而不是实现成一个框架。 也就是说,它应当尽量减少前期进行基本规则和指南的学习的时间成本。前期学习之后, 库的用户,只需要理解具体所要使用的特定函数即可。

  • 易于进行后期抽象。 这个库,应当允许 以其为基础实现其它更高级别抽象的库。例如 ,以它为基础实现一些常用的协议,比如说HTTP。

尽管Boost.Asio最初是为网络编程而设计的,但是,它所提供的异步输入输出的概念已经被扩展到包含其它的操作系统资源了,例如串口、文件描述符等等。

倒立

常艳

橙小酱

骰子

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands