前景提要
HDC调试需求开发(15万预算),能者速来!>>>
很多很多时候, 我们都需要用到http协议, 而在c/c++中, 好用的开源http开发库大概没几个, 比较全面的就 属curl了, 我相信这个库很多人都使用过, 不过它的api接口在我看来并不友好, 繁琐和难以理解的选项非常之多, 并且关键一点, 不支持异步!
所以, 要 使用curl 只能开线程! 不用我说, 线程显然是一种昂贵的资源, 过多的线程会导致cpu频繁的切换线程上下文而不是干实事, 这个代价是很大的. 这也正是异步的好处之一, 可以避免过多的线程.
异步在当前很多应用的需求当中, 异步几乎必备的特性了, 好吧, 终于有一个 叫node.js的家伙出现了, 并且可 以很好的支持异步, 但毕竟在c++开发环境下, 若为了http这样的功能而引 入它的话, 似乎有点小题大作了, 而且node.js是通过脚本来执行的, 这必将使得效率下降.
这真是太糟糕了!
我是一个有代码洁癖的人, 显然最看不得到处飞线程这种事, 由其是仅仅为了下载一点点数据, 就飞一个线 程, 我 是最接受不了的. 在许多群友的鼓励下, 我终于开始了avhttp项目的开发, 并设定了最初的一个目标,那就是:
一. 开源!!! 并使用boost授权( http://www.boost.org/LICENSE_1_0.txt )作为开源协议.
二. 支持http/1.0协议.
三. 支持http/1.1协议, 其中包括chunked支持, gzi压缩等支持.
四. 支持代理, 包括socks4/socks5/http代理( 天朝必备 ).
五. 异步支持, 基于asio, 可以获得良好的异步支持.
六. 并发下载, 断点续传, 这一块是在基于上面5点的基础上的.
七. 简单易用的接口.
经过持续的开发一直到今天, 总算把这个目标实现了.
详细见: http://www.oschina.net/p/avhttp 或直接 https://github.com/avplayer/avhttp
当前编译测试状态
感叹: 开源真是累啊! 没啥好处活受罪! 所以, 抛砖还请轻点.