知道了一个URL,怎样利用这个URL把文件下载下来,当然是利用socket编程比如这个url: http://avatar.profile.csdn.net/1/3/A/2_guguqiaqia.jpg我知道利用http编程的winInet的方式下载数据。不知道socket怎么做这样的程序,期望能提示一下。或者是有例子的话,那就更好了。谢谢。

解决方案 »

  1.   

    顺便说一下我原先的那些参考。
    下载文件功能后来由于种种原因没有做。http://topic.csdn.net/u/20080220/16/ae9d6fca-c79a-44c7-9698-cf9d67e56ac6.htmlhttp://topic.csdn.net/u/20080220/14/6d005f30-1c0f-4cea-91ac-0bc3ed6592cf.htmlhttp://topic.csdn.net/u/20080226/15/33ae784d-66bf-48f6-a917-5e3701f1c255.html
      

  2.   

    http://topic.csdn.net/t/20021111/10/1165709.html
      

  3.   

    #include<urlmon.h>
    char szUrlPath[512]="http://avatar.profile.csdn.net/1/3/A/2_guguqiaqia.jpg";
    URLDownloadToFile(0,szUrlPath,"c:\\2_guguqiaqia.jpg",0,NULL);可以用一个简单的函数搞定.但是你说用原始的socket.我想要组一些向网页请求的包吧..请求到这张图片的内容的一个连接.然后接收你们的数据自己写成一个文件就行了...
      

  4.   

    莫不是要用socket实现http协议里的get方法???
      

  5.   

    先多谢各位。我用wininet已经实现了。想用socket来实现。我就是要利用socket的编程方式,仅仅利用url然后就可以把文件下载下来。就这么简单
    help....如果下载完了,加验证是否完全下载完,那就更好了。
    help .....
      

  6.   

    用socket实现发送http包就可以了,流程如如下:char httphead[1024] = {0};
    char httpRecv[1024] = {0};
    sock = SOCKET;
    connect(sock,,,);
    strcpy(httphead, "Get http://avatar.profile.csdn.net/1/3/A/2_guguqiaqia.jpg HTTP/1.1\r\n\r\n");
    send(sock,httphead,strlen(httphead);
    recv(sock,httpRecv, 1024, 0);
    然后解析出httpRecv中的http包,取出包头就是jpg的数据了。
      

  7.   

    利用socket连接到服务器
    构建一个http请求数据包
    把请求包发送给服务器
    接收到数据
    取出头 分析数据包大小
    保存成图片完成了
    只是说了一下流程
    这是请求百度Logo图片的http请求包
    你参考下GET /img/baidu_logo.gif HTTP/1.1
    Accept: */*
    Referer: http://www.ibiancheng.cn
    Accept-Language: en-US,zh-cn;q=0.5
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; CIBA; MAXTHON 2.0)
    Host: www.baidu.com
    Connection: Keep-Alive