首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

想写个文件上载器

2012-09-25 
想写个文件下载器http的吧比如http://images.enet.com.cn/eschool/corldrawx3/367992.swf这样的存为1.swf

想写个文件下载器
http的吧
比如http://images.enet.com.cn/eschool/corldrawx3/367992.swf这样的存为1.swf

在csdn搜源码费了我不少分,不知道是人笨还是咋的,不如直接在这求了

[解决办法]

C/C++ code
#include <stdio.h>#include <windows.h>#include <wininet.h>#define MAXBLOCKSIZE 1024#pragma comment( lib, "wininet.lib" ) void download(const char *Url,const char *save_as)/*将Url指向的地址的文件下载到save_as指向的本地文件*/{    byte Temp[MAXBLOCKSIZE];    ULONG Number = 1;        FILE *stream;    HINTERNET hSession = InternetOpen("RookIE/1.0", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);    if (hSession != NULL)    {        HINTERNET handle2 = InternetOpenUrl(hSession, Url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);        if (handle2 != NULL)        {                                    if( (stream = fopen( save_as, "wb" )) != NULL )            {                while (Number > 0)                {                    InternetReadFile(handle2, Temp, MAXBLOCKSIZE - 1, &Number);                                        fwrite(Temp, sizeof (char), Number , stream);                }                fclose( stream );            }                        InternetCloseHandle(handle2);            handle2 = NULL;        }        InternetCloseHandle(hSession);        hSession = NULL;    }}int main(int argc, char* argv[]){        download("http://blog.csdn.net/agoago_2009/","C:\\Users\\ago\\Desktop\\index.html");    return 0;}
[解决办法]
应该就是发一个HTTP的GET请求。然后把服务器返回的数据保存到1.swf
[解决办法]
发GET包
然后根据返回的http包解析出Content-Length
Content-Length就是文件的长度 后面附带的就是文件

热点排行