菜鸟笔记
提升您的技术认知

c 网络编程之一:什么是boost.asio? boost.asio-ag真人游戏

阅读 : 686

       简单来说,boost.asio是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的c 库。

       关于网络处理已经有很多ag真人游戏的解决方案,但是boost.asio是目前为止最优的方案。它在2005年就被包含进boost,然后被大量boost的用户测试并使用在许多项目中,比如:remobo(http://www.remobo.com),可以让你创建你自己的即时私有网络(ipn);libtorrent(http://www.rasterbar.com/products/libtorrent)),一个用于实现比特流客户端的库;pokerth (http://www.pokerth.net),一个支持lan和互联网对战的纸牌游戏。

       boost.asio在网络通信、com串行端口和文件上成功地抽象了输入输出的概念。你可以基于这些进行同步或者异步的输入输出编程。

read(stream, buffer [, extra options])
async_read(stream, buffer [, extra options], handler)
write(stream, buffer [, extra options])
async_write(stream, buffer [, extra options], handler)

       从前面的代码片段可以看出,这些函数支持传入包含任意内容(我们能进行读写的不仅仅是socket)的流实例。作为一个跨平台的库,boost.asio可以在大多数操作系统上使用。能同时支持数千个并发的连接。其网络部分的灵感来源于伯克利软件分发(bsd)socket,它提供了一套可以支持传输控制协议(tcp)socket、用户数据报协议(udp)socket和internet控制消息协议(imcp)socket的api,而且如果有需要,你可以对其进行扩展以支持自己的协议。

依赖
boost.asio依赖于如下的库:
boost.system:这个库为boost库提供操作系统支持
boost.regex:使用这个库(可选的)以便你重载read_until()或者async_read_until()时使用boost::regex参数。
boost.datetime:这个库(可选的)为boost.asio中的计时器功能提供支持。
openssl:这个库(可选的)为boost.asio中的ssl功能提供支持。

重要的宏
如果设置了boost_asio_disable_threads,不管你是否在编译boost的过程中加入了线程支持,boost.asio中的线程支持都会失效。

网站地图