Boost C++ 库

...在世界上最受推崇、设计最精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ Coding Standards

基本原理 - Boost C++ 函数库
PrevUpHomeNext

大多数程序都会以某种方式与外部世界进行交互,无论是通过文件、网络、串行端口还是控制台。有时,例如在网络通信中,单个 I/O 操作可能需要很长时间才能完成。这给应用程序开发带来了特殊的挑战。

Boost.Asio 提供了管理这些耗时操作的工具,而无需程序使用基于线程和显式锁定的并发模型。

Boost.Asio 库面向使用 C++ 进行系统编程的程序员,他们通常需要访问网络等操作系统功能。特别是,Boost.Asio 解决了以下目标:

  • 可移植性。 该库应支持一系列常用的操作系统,并在这些操作系统上提供一致的行为。
  • 可扩展性。 该库应有助于开发能够扩展到数千个并发连接的网络应用程序。每个操作系统的库实现应使用最能实现这种可扩展性的机制。
  • 效率。 该库应支持散布/收集 I/O 等技术,并允许程序最小化数据复制。
  • 借鉴成熟 API(如 BSD 套接字)的模型概念。 BSD 套接字 API 已得到广泛实现和理解,并且在大量文献中有介绍。其他编程语言通常在网络 API 中使用类似的接口。在合理范围内,Boost.Asio 应借鉴现有实践。
  • 易用性。 该库应采用工具包而非框架的方法,从而降低新用户的入门门槛。也就是说,它应尽量减少在时间上的前期投入,只需学习一些基本规则和指南。之后,库用户只需理解正在使用的特定函数即可。
  • 作为进一步抽象的基础。 该库应允许开发提供更高级别抽象的其他库。例如,HTTP 等常用协议的实现。

尽管 Boost.Asio 最初主要专注于网络,但其异步 I/O 的概念已扩展到包括其他操作系统资源,如串行端口、文件描述符等。


PrevUpHomeNext