我想用程序把指定网站上的东西下载到本机,而不用连接到网页上怎么做?就像网络蚂蚁中建立一个新的任务。 例如www.aaa.com/a.zip我想把这个文件下载到我的机器上,而不用登陆www.aaa.com如何处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直接用WinSocket或者用CHttpFile类 我实用的c不能用mfc,怎么办?多谢。 SOCKET APIconnect()...recv()...close()... 那就直接用socket吧.... int iResult; WSADATA ws; SOCKET s; sockaddr_in addr; hostent *host; WSAStartup(0x0101,&ws); s = socket(AF_INET,SOCK_STREAM,0); addr.sin_family = AF_INET; addr.sin_port = htons(80); host = gethostbyname('http://www.microsoft.com');//从主机名(非IP地址)获得主机的信息 memcpy((char FAR *)&(addr.sin_addr),host->h_addr,host->h_length); if(SOCKET_ERROR == connect(s,(struct sockaddr *)&addr, sizeof(addr))) { // 连接失败 WSACleanup(); return false; } else { // 连接成功 timeval timeout; timeout.tv_sec=m_timeout; timeout.tv_usec=0;//select的超时设置 fd_set fds;//用于阻塞函数select的结构 FD_ZERO(&fds); FD_SET(s,&fds); iResult = select(0, NULL,&fds, NULL, &timeout); if(iResult<=0) { WSACleanup(); return false; } iResult = send(s, 'GET /index.htm HTTP/1.1\r\nHost:www.microsoft.com\r\nAccept:*/*\r\nPragma: nocache\r\nConnection: Close\r\n\r\n',TempStr.Length(),0);//发送Get请求 if(iResult==SOCKET_ERROR) { WSACleanup(); return false; }........ //等着服务器返回你要的文件吧.do{ iResult = select(0, &fds, NULL, NULL, &timeout); if(iResult<=0) { WSACleanup(); return false; }... iResult = recv(s,strBuffer,sizeof(strBuffer),0);//保存内容到文件...while(iResult) WSACleanup(); return true; 头文件:#include <winsock.hpp> Ultimate Grid 问题 如何修改WINDOWS文件的属性信息?(不打开文件) 怎么打开另一工程的对话框(想取得上面的控件,一个一个的重新写麻烦,打开复制)?? 100分求vc百例的拼图游戏原代码 DLL 导出类的问题 散分,公司于终给偶换液晶了,高兴ing! 求救SOS:)!!一有关SQL查询的简单问题!!请教大虾!!回者有分!!!!!! 操作符重载 ODBC打开网络数据库的问题 如何截取图像的某一指定范围显示出来? 有谁知道怎样用directdraw实现alpha混合功能,我给高分 请帮忙看看这个CString到LPCWSTR的转换问题
或者用CHttpFile类
recv()...
close()...
...
int iResult;
WSADATA ws;
SOCKET s;
sockaddr_in addr;
hostent *host; WSAStartup(0x0101,&ws);
s = socket(AF_INET,SOCK_STREAM,0);
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
host = gethostbyname('http://www.microsoft.com');//从主机名(非IP地址)获得主机的信息
memcpy((char FAR *)&(addr.sin_addr),host->h_addr,host->h_length); if(SOCKET_ERROR == connect(s,(struct sockaddr *)&addr, sizeof(addr)))
{
// 连接失败
WSACleanup();
return false;
}
else
{
// 连接成功 timeval timeout;
timeout.tv_sec=m_timeout;
timeout.tv_usec=0;//select的超时设置
fd_set fds;//用于阻塞函数select的结构
FD_ZERO(&fds);
FD_SET(s,&fds); iResult = select(0, NULL,&fds, NULL, &timeout);
if(iResult<=0)
{
WSACleanup();
return false;
}
iResult = send(s, 'GET /index.htm HTTP/1.1\r\nHost:www.microsoft.com\r\nAccept:*/*\r\nPragma: nocache\r\nConnection: Close\r\n\r\n',TempStr.Length(),0);//发送Get请求
if(iResult==SOCKET_ERROR)
{
WSACleanup();
return false;
}........
//等着服务器返回你要的文件吧.
do
{
iResult = select(0, &fds, NULL, NULL, &timeout);
if(iResult<=0)
{
WSACleanup();
return false;
}
...
iResult = recv(s,strBuffer,sizeof(strBuffer),0);
//保存内容到文件
...
while(iResult) WSACleanup();
return true;
#include <winsock.hpp>