自己写还是比较麻烦的,各种解码,解析。
解决方案 »
- 为什么ICMP包可以用原始套接字发 而TCP,原始UDP这些包就要用winpack发呢?
- 如何把IE控件,放在单独一个线程里?
- 关于传值和传引用的问题,在线等
- 急急急,怎么改变ie控件右边滚动条的颜色 和风格?
- 已知一个位图句柄,如何保存为BMP图片保存到指定文件中
- 如何从文件末倒数指定某行开始读取
- 困惑很久的一个网络通讯程序,想请人写一个,winsock的通讯程序,100分相送!
- 想编一个视频聊天程序,要用到DirectShow,请问需要哪些配置?
- 组播中的组ip地址是什么意思?
- 关于在VC++中改变控件字体颜色的问题
- 怎样将矩阵计算函数单独写在一个文件中,之后计算只用调用函数?
- 关于VC++2010没有CMenu基类的问题??
http://download.csdn.net/detail/geoff08zhang/4571358
去看了一下,那个核心代码基本是废的:
1. 不支持gzip
2. 不支持chunked,只支持content-length指定长度的服务器。他就是一个最普通的下载方式,到处一搜一大把代码。
去看了一下,那个核心代码基本是废的:
1. 不支持gzip
2. 不支持chunked,只支持content-length指定长度的服务器。他就是一个最普通的下载方式,到处一搜一大把代码。
chunked无非就是用长度为0的一个chunked标识结尾
gzip无非就是让你转一下。
你说了这么多不支持, 其实都不是什么大问题, 要真说不支持, 应该是不支持懒人如果会用api的话,或者就用socket来做,自己封装一个不成问题。下面给一些提示:
chucked解析:
int nBytes; char* pStart = a; // a中存放待解码的数据 char* pTemp; char strlength[10]; //一个chunk块的长度 chunk : pTemp =strstr(pStart,"\r\n"); if(NULL==pTemp) { free(a); a=NULL; fclose(fp); return -1; } length=pTemp-pStart; COPY_STRING(strlength,pStart,length); pStart=pTemp+2; nBytes=Hex2Int(strlength); //得到一个块的长度,并转化为十进制 if(nBytes==0)//如果长度为0表明为最后一个chunk { free(a); fclose(fp); return 0; } fwrite(pStart,sizeof(char),nBytes,fp);//将nBytes长度的数据写入文件中 pStart=pStart+nBytes+2; //跳过一个块的数据以及数据之后两个字节的结束符 fflush(fp); goto chunk; //goto到chunk继续处理
2、gzip解析:
http://blog.csdn.net/cnhzgb/article/details/6667772
chucked解析:
http://wenku.baidu.com/view/50d6f575a417866fb84a8ef9.html
我说你懒
over