想写个文件下载器

x363635334 2012-09-07 09:38:56
http的吧
比如http://images.enet.com.cn/eschool/corldrawx3/367992.swf这样的存为1.swf

在csdn搜源码费了我不少分,不知道是人笨还是咋的,不如直接在这求了
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
x363635334 2012-09-15
  • 打赏
  • 举报
回复
谢谢各位大侠
__lhy 2012-09-08
  • 打赏
  • 举报
回复
发GET包
然后根据返回的http包解析出Content-Length
Content-Length就是文件的长度 后面附带的就是文件
npuhuxl 2012-09-07
  • 打赏
  • 举报
回复
应该就是发一个HTTP的GET请求。然后把服务器返回的数据保存到1.swf
Gloveing 2012-09-07
  • 打赏
  • 举报
回复
#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;
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧