Boost.Asio

Boost.Asioは、クロスプラットフォームのC ++基礎となるネットワークのためのライブラリと開発者のための一貫性のある非同期モデルを提供して近代的なC ++のアプローチを使用してI / Oプログラミング、です。

基本的な

何らかの方法で外部世界と対話するほとんどのプログラムで、いずれかのファイル、ネットワーク、またはシリアルケーブルをコンソールから。時には、ネットワークの場合と同様に、単一のI / O操作が完了するまでに長い時間がかかることがあります。これは、アプリケーション開発のための特別な課題を提起します。

Boost.Asioは、明示的なロックに基づくスレッドと並行処理モデルを使用してプログラムすることなく、これらの長時間実行の操作を管理するためのツールを提供します。

Boost.Asioの C ++プログラマのためのライブラリが使用するようにシステムをプログラムするために、システムは、しばしば、このようなネットワーク等のOSの機能にアクセスする必要があります。特に、Boost.Asioは、以下の目標を達成します:

  • 移植性。ライブラリは、一般的に使用されるOSの範囲をサポートし、これらのOS間で一貫性のある動作を提供する必要があります。
  • スケーラビリティ。ライブラリは、同時接続のネットワークアプリケーションの何千もの開発を促進するために拡大すべきです。最高このスケーラビリティを実現することができ、それぞれのオペレーティング・システムライブラリの実装メカニズムを使用する必要があります。
  • 効率性。ライブラリは、分散型I / O技術の集約をサポートし、プログラムが最小限にデータをコピーできるようにする必要があります。
  • このようBSDソケットとして確立APIからの概念モデル、。BSDソケットAPIは広く理解され、実装、および多くの参考文献に関与しているされています。他のプログラミング言語は、通常、APIのネットワーキングのための同様のインタフェースです。合理的な範囲内で、Boost.Asioは、既存の慣行を活用すべきです。
  • 使いやすいです。ライブラリは、このように新たなユーザのエントリに低い障壁を提供し、ツールボックスのフレームワークアプローチの代わりに使用されるべきです。つまり、ケースには、先行投資を最小限に抑えるために、いくつかの基本的なルールやガイドラインを学ぶために試してみてください。その後、ライブラリのユーザのみが使用されている特定の機能を知っておく必要があります。
  • さらに抽象基礎。ライブラリは、開発者が他のライブラリの抽象化の高いレベルを提供できるようにする必要があります。例えば、共通のプロトコル(例えば、HTTP)のを達成します。

けれどもBoost.Asi Oは最初にネットワークに焦点を当てているが、それは、非同期I / Oの概念は、シリアルポート、ファイル記述子などの他のオペレーティング・システム・リソースを含むように拡張されましたです。

コアの概念と機能

Boost.Asioは、I / Oオブジェクトの同期および非同期動作を実行するために使用すること(例えば、Aソケット)。しかし、ブーストASIOを使用する前に、マップの関連部分のフレームワークASIOブーストを理解し、あなたは親切、それがプログラムで使用されているかの便利になります。

おすすめ

転載: www.cnblogs.com/wangzxblog/p/11887521.html