Asio 技术学习

来源:互联网 发布:网页nginx forbidden 编辑:程序博客网 时间:2024/04/29 21:09

在百度搜索asio让人瞬间斯巴达了


Asio c++库

Asio是一个跨平台的c++库网络I / O和低级编程,为开发人员提供了一个一致的异步模型使用一个现代c++方法。

Asio提供什么?

Asio提供了c++的基本构建块网络、并发性和其他类型的I / O。

什么样的应用程序可以使用Asio ?

Asio用于各种各样的应用程序,从手机应用世界上最快的市场份额。

Asio和Boost.Asio

Asio有两种变体:Asio和Boost.Asio(non-Boost)。

许可证

Asio Boost软件许可下发布。

支持的平台上

以下测试平台和编译器:

Win32和Win64使用Visual c++ 7.1,8.0,9.0和10.0。

使用MinGW Win32。

使用Cygwin Win32。(必须定义__USE_W32_SOCKETS。)

Linux(2.4或2.6内核)使用g++ 3.3或更高版本。

Solaris使用g++ 3.3或更高版本。

Mac OS X 10.4和以后使用g++ 3.3或更高版本。

下面的平台也可能工作:

2007年Win32使用Borland c++ Builder。

AIX 5.3 XL C / c++ v9的使用。

hp - ux 11我使用修补aC + + A.06.14 v3。

QNX Neutrino 6.3使用g++ 3.3或更高版本。

使用Sun Solaris Studio 11或更高版本。

使用c++ v7.1康柏Tru64 v5.1。

区别详细介绍:

源代码的区别是什么?

我得到一个发布包在哪里?

源代码存储库在哪里?

两个版本维护吗?

Asio将停止现在的提升。Asio包含在提高吗?

我应该使用Asio或Boost.Asio吗?

可以Asio和提高。Asio共处在同一个项目?

源代码的区别是什么?

——Asio在一个名称空间中被称为Asio::,而提高。Asio所说的一切在提高::Asio::。

——主要叫做asio.hpp Asio头文件。相应的标题在提高。Asio是boost/ asio.hpp。所有其他的标题也同样发生了变化。

——中定义的任何使用的宏或Asio与ASIO_前缀。在提高。Asio他们与BOOST_ASIO_前缀。

- Asio包括启动线程的一个类:Asio:线程。Boost.Asio不包含这个类,以避免重叠的 Boost.Thread线程库

—— Boost.Asio使用增加。系统库提供支持错误代码(boost::系统::error_code和提高::系统::system_error)。Asio包括这些在自己的名称空间(Asio::error_code Asio::system_error)。c++ 11,Asio使用std::error_code和std::附带system_error类编译器。当不使用C + + 11,提振。这些类的系统版本目前支持用户定义的错误代码的更好的可扩展性。

——Asio header-file-only,对于大多数使用不需要对任何Boost库链接。当使用c++ 11与最新版本的gcc,叮当声或者MSVC Asio可以使用独立的提高通过定义ASIO_STANDALONE当你编译。提振。对提高Asio总是要求你链接Boost.System,并对  Boost.Thread如果你想启动线程使用boost::thread

我得到一个发布包在哪里?

Asio从SourceForge下载,在一个名为asio-X.Y.Z.tar包。(或. tar。bz2或者. zip)。

Boost.Asio包含在1.35和更高版本的提高分布。它也可以作为一个单独的包在SourceForge上,名叫boost_asio_X_Y_Z.tar.gz。后者旨在复制在现有促进源代码分布。

源代码存储库在哪里?

Asio是托管在GitHub。

Boost.Asio检查到提升的subversion存储库。

两个版本维护吗?

所有的发展是在GitHub Asio库来完成的。源是周期性地转化为促进格式称为boostify使用脚本。pl,更改合并到促进subversion存储库。

我应该使用Asio或Boost.Asio吗?

视情况而定。这里有一些事情要考虑:

——如果你喜欢的便利header-file-only库然后使用Asio提升。Asio建议。

——如果你必须使用1.35以上版本的提高提高。Asio并不包括在内。您可以使用增加。Asio通过复制它的顶部增加分布(见上图),但是并不是每个人都舒服的这样做。在这种情况下,使用Asio替代

我应该使用Asio或Boost.Asio吗?

视情况而定。这里有一些事情要考虑:

——如果你喜欢的便利header-file-only库然后使用Asio提升。Asio建议。

——如果你必须使用1.35以上版本的提高提高。Asio并不包括在内。您可以使用增加。Asio通过复制它的顶部增加分布(见上图),但是并不是每个人都舒服的这样做。在这种情况下,使用Asio替换Boost.Asio建议。

——新版本的Asio和提升。Asio包将被创建在比这更快的发布周期提高紧随其后。如果你想使用最新的功能仍然可以使用提升。Asio只要你乐于把它复制在你的刺激分布。如果你不想这样做,使用Asio而不是Boost.Asio。

可以Asio和提高。Asio共处在同一个项目?

是的。因为他们使用不同的名称空间应该没有冲突,尽管显然类型本身不可以互换。(如果你想知道为什么你可能想这样做,考虑这样一个情况,一个程序正在使用第三方库,还在内部利用Asio)。

Asio建议。

——新版本的Asio和提升。Asio包将被创建在比这更快的发布周期提高紧随其后。如果你想使用最新的功能仍然可以使用提升。Asio只要你乐于把它复制在你的刺激分布。如果你不想这样做,使用Asio而不是Boost.Asio。

可以Asio和提高。Asio共处在同一个项目?

是的。因为他们使用不同的名称空间应该没有冲突,尽管显然类型本身不可以互换。(如果你想知道为什么你可能想这样做,考虑这样一个情况,一个程序正在使用第三方库,还在内部利用Asio)。


有一个已经翻译了的文档参考:

http://blog.csdn.net/mmoaay/article/category/2891835








官网:http://think-async.com/

0 0
原创粉丝点击