随笔 - 79  文章 - 58  trackbacks - 0
<2014年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(9)

随笔分类

随笔档案

文章档案

相册

搜索

  •  

积分与排名

  • 积分 - 294107
  • 排名 - 87

最新评论

阅读排行榜

评论排行榜

简介

Boost.Asio是一个跨平台的C++库,主要用于网络和其他一些底层的I/O编程。
在大量的网络编程库中,Boost.Asio是其中的佼佼者,它于2005年加入到Boost,已经被广泛的测试并且应用在多个项目中,如:
  1. Remobo (http://www.remobo.com),用于创建瞬时专用网络(IPN)
  2. libtorrent (http://www.rasterbar.com/products/libtorrent), 用于实现BT的客户端
  3. 开源德州扑克游戏PokerTH (http://www. pokerth.net)
Boost.Asio成功的抽象了包括网络,串口、文件在内的同步和异步的I/O操作:
  1. read(stream, buffer [, extra options]) 
  2. async_read(stream, buffer [, extra options], handler) 
  3. write(stream, buffer [, extra options]) 
  4. async_write(stream, buffer [, extra options], handler)
Boost.Asio支持大多数操作系统,轻量可扩展的,目前网络部分支持TCP, UDP, IMCP,可以很方便的扩展自定义协议。


历史

Boost.Asio于2003年开始开发,2005年12月加入到Boost 1.35,原始作者Christopher M. Kohlhoff。
支持的平台和编译器如下:
32位和64位Windows, Visual C++ 7.1及以上
Windows, MinGW
Windows ,  Cygwin (必须定义宏#define      USE_232_SOCKETS)
基于2.4和2.6核心的Linux ,  g++ 3.3 及以上
Solaris, g++ 3.3 及以上
MAC OS X 10.4+, g++ 3.3 及以上
在其他平台也应该能正常工作,如:
AIX 5.3, HP-UX 11i v3, QNX Neutrino 6.3, Solaris using  Sun Studio  11+, True64 v5.1, Windows using  Borland  C++ 5.9.2+ (consult at www.boost.org for more details).


依赖关系

Boost.Asio 依赖如下库:
Boost.System: 必选,提供了操作系统底层函数的支持
Boost.Regex:  可选,如果你使用了带boost::regex参数的read_until() 和 async_read_until() 
Boost.DateTime: 可选,如果你使用了定时器
OpenSSL: 可选,如果需要SSL的支持


编译
Boost.Asio 是只有头文件的库,无需编译直接使用,但是你也可以编译成静态或者动态库, 减少程序的编译时间。
包含头文件  #include <boost/asio/impl/src.hpp>(如果使用SSL, 也要包含 #include <boost/asio/ssl/impl/src.hpp>), 而不是包含 <boost/asio.hpp>
在程序的源文件里定义宏 #define BOOST_ASIO_SEPARATE_COMPILATION 
由于Boost.Asio 依赖Boost.System和Boost.Regex, 所以编译如下:
bjam –with-system –with-regex stage
如果你运行完整的测试,执行Asio自带的样例,建议编译如下:
bjam –with-system –with-thread –with-date_time –with-regex –with- serialization stage
注意如果定义了BOOST_ASIO_DISABLE_THREADS宏, 不论boost是否支持线程,asio将会不支持线程,
 
posted on 2014-08-11 22:45 merlinfang 阅读(4667) 评论(0)  编辑 收藏 引用 所属分类: asio

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理