知道了一个URL,怎样利用这个URL把文件下载下来,当然是利用socket编程比如这个url: http://avatar.profile.csdn.net/1/3/A/2_guguqiaqia.jpg我知道利用http编程的winInet的方式下载数据。不知道socket怎么做这样的程序,期望能提示一下。或者是有例子的话,那就更好了。谢谢。
解决方案 »
- 如何打开Windows设备管理器中的某个设备的驱动的属性对话框
- 关于CFileDialog的默认文件类型参数问题
- Socket连接失败
- 如何用SendMessage或PostMessage发另一个窗口发送alt+回车
- vc怎么屏蔽别人开发的软件里的菜单项
- 用vc怎样生成一个word文档的表格
- ATL activex中timer如何使用?
- ===============请教各位大侠关于用CryptoAPI加密的问题==================
- 新人求助,调用webbrowser控件问题
- 急!Activex中用MSCOMM.ocx控件出错!
- wince 打印机驱动..
- 熟悉DICOM的进!!!!!!!!!!!紧急!!!!!!!!!!!!!!
下载文件功能后来由于种种原因没有做。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
char szUrlPath[512]="http://avatar.profile.csdn.net/1/3/A/2_guguqiaqia.jpg";
URLDownloadToFile(0,szUrlPath,"c:\\2_guguqiaqia.jpg",0,NULL);可以用一个简单的函数搞定.但是你说用原始的socket.我想要组一些向网页请求的包吧..请求到这张图片的内容的一个连接.然后接收你们的数据自己写成一个文件就行了...
help....如果下载完了,加验证是否完全下载完,那就更好了。
help .....
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的数据了。
构建一个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