在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
对asio库做个特别记录,网上大部分有关网络库的文章中提到的asio都是boost版本的,但其实有一个独立于boost的asio库,与boost无关,内容用法都一样,可以非常简单的加入到项目中进行开发。 这里是下载链接: 非boost库版的asio-CSDN下载 http://download.csdn.net/download/dreamhuijie/9994081 使用非常简单: 使用方法: 1.下载解压asio-1.10.8库。这个是独立于boost的版本。 2.项目属性路径中包含路径添加asio-1.10.8的include目录 3.项目属性预处理器定义添加ASIO_STANDALONE 4.开始编程:#include <asio.hpp> 下面附上网址,可以下载库,学习文档 (1)ACE http://www.cs.wustl.edu/~schmidt/ACE.html (2)Asio
下面的内容转载自: 开源C/C++网络库比较 - CSDN博客 http://blog.csdn.net/langeldep/article/details/6976120
在开源的C/C++网络库中, 常用的就那么几个, 在业界知名度最高的, 应该是ACE了, 不过是个重量级的大家伙, 轻量级的有libevent, libev, 还有 Boost的ASIO。 ACE是一个大型的中间件产品,代码20万行左右,过于宏大,一堆的设计模式,架构了一层又一层,使用的时候, 要根据情况,看你从那一层来进行使用。支持跨平台。 Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发。支持跨平台。 libevent是一个C语言写的网络库, 官方主要支持的是类linux 操作系统, 最新的版本添加了对windows的IOCP的支持。由于IOCP是异步IO,与linux下的POLL模型,EPOLL模型,还有freebsd的KQUEUE等这些同步模型在用法上完全不一致,所以使用方法也不一样,就好比ACE中的Reactor和Proactor模式一样, 使用起来需要转变思路。如果对性能没有特别的要求, 那么使用libevent中的select模型来实现跨平台的操作, select模型可以横跨windows, linux, unix,solaris等系统。 libev是一个C语言写的,只支持linux系统的库,我以前研究的时候只封装了EPOLL模型, 不知道现在的新版有没有改进。使用方法类似libevent, 但是非常简洁,代码量是最少的一个库,也就几千行代码。显然这样的代码跨平台肯定是无法支持的了, 如果你只需要在linux下面运行,那用这个库也是可以的。
2.涉及范围: 3.设计模式: 4.线程调度: 5.事件分派处理: 6.发布方式: 7.可移植性: 8.开发难度: 基于ASIO开发应用,要求程序员熟悉函数对象,函数指针,熟悉boost库中的boost::bind。内存管理控制方面。 基于libevent开发应用,相对容易, 具体大家可以参考memcached这个开源的应用,里面使用了libevent这个库。
参考: 开源免费的C/C++网络库(c/c++ sockets library) - findumars - 博客园 https://www.cnblogs.com/findumars/p/5859634.html
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论