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/