Boost C++ 库

……是全球备受推崇且设计精湛的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu《C++ 编码标准》

基本原理 - 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