zoukankan      html  css  js  c++  java
  • Boost.Asio

    Boost.Asio是用于网络和底层I/O编程的跨平台C++库,它使用现代C++方法为开发人员提供一致的异步模型。

    基本原理

    大多数程序都以某种方式与外界交互,无论是通过文件,网络,串行电缆还是控制台。有时,与网络情况一样,单个I/O操作可能需要很长时间才能完成。这对应用程序开发提出了特殊的挑战。

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

    Boost.Asio库供使用C++进行系统编程的程序员使用,该系统通常需要访问诸如网络之类的OS功能。特别是,Boost.Asio实现了以下目标:

    • 可移植性。该库应支持一系列常用的OS,并在这些OS之间提供一致的行为。
    • 可扩展性。该库应促进可扩展到数千个并发连接的网络应用程序的开发。每个操作系统的库实现应使用最能实现此可伸缩性的机制。
    • 效率。该库应支持散布式聚集I / O等技术,并允许程序将数据复制减至最少。
    • 来自已建立的API的模型概念,例如BSD套接字。BSD套接字API得到了广泛的实现和理解,并且在许多文献中都有涉及。其他编程语言通常将类似的接口用于网络API。在合理的范围内,Boost.Asio应该利用现有做法。
    • 使用方便。该库应采用工具箱而非框架方法,从而为新用户提供较低的入门门槛。就是说,它应该尝试在学习一些基本规则和准则的情况下,尽量减少前期投资。之后,库用户只需要了解所使用的特定功能。
    • 进一步抽象的基础。该库应允许开发提供更高抽象级别的其他库。例如,常用协议(例如HTTP)的实现。

    尽管Boost.Asio最初是聚焦在网络,但它的异步I/O概念已经扩展到包括其他操作系统资源,例如串行端口,文件描述符等。

    核心概念和功能

    Boost.Asio可用于对I/O对象(例如套接字)执行同步和异步操作。但是使用Boost Asio之前,了解Boost Asio的相关组成部分的框架图,对您在程序种如何使用它将会变得很有用。

  • 相关阅读:
    kaggle之员工离职分析
    Titanic幸存预测分析(Kaggle)
    学习python,第五篇
    VLAN入门知识
    复习下VLAN的知识
    复习下网络七层协议
    学习python,第四篇:Python 3中bytes/string的区别
    学习python,第三篇:.pyc是个什么鬼?
    学习python,第二篇
    学习python,第一篇
  • 原文地址:https://www.cnblogs.com/wangzxblog/p/11887521.html
Copyright © 2011-2022 走看看