MFC 文件下载?

morrist1987 2012-02-13 02:12:44
如题,给定IP地址(内网)和端口,知道文件路径,指定端口(12345),如何文件下载?
有木有类似的源码。

这个要如何实现呢?看要求是不能使用FTP和CInternetSession了。
求各位大牛给个指导思想和实现方案,有类似源码的也可以给下链接。
非常感谢。
...全文
118 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
morrist1987 2012-02-13
  • 打赏
  • 举报
回复
再来个人。
gold_water 2012-02-13
  • 打赏
  • 举报
回复
这里是被封装好的,可以直接重写来实现,需要指定服务器地址,端口
morrist1987 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 joeblackzqq 的回复:]

引用 4 楼 morrist1987 的回复:

引用 2 楼 gold_water 的回复:

LPCTSTR url = _T("http://www.abcxx.com/Bes/images/logo.png");

LPCTSTR fileName = _T("c://lsPic.png");

HINTERNET hNet= ::InternetOpen(_T(""),……
[/Quote]

用到socket中间哪个类?
我才是心翼 2012-02-13
  • 打赏
  • 举报
回复
建立socket
gameslq 2012-02-13
  • 打赏
  • 举报
回复
直接建立socket 连接后下载即可
网上有很多列子,自己搜下吧
JoeBlackzqq 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 morrist1987 的回复:]

引用 2 楼 gold_water 的回复:

LPCTSTR url = _T("http://www.abcxx.com/Bes/images/logo.png");

LPCTSTR fileName = _T("c://lsPic.png");

HINTERNET hNet= ::InternetOpen(_T(""), PRE_CONFIG_INTERNET_ACCESS……
[/Quote]

采用HTTP协议,难道不能指定服务器的端口号吗?
morrist1987 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gold_water 的回复:]

LPCTSTR url = _T("http://www.abcxx.com/Bes/images/logo.png");

LPCTSTR fileName = _T("c://lsPic.png");

HINTERNET hNet= ::InternetOpen(_T(""), PRE_CONFIG_INTERNET_ACCESS, NULL, INTERNET_INVALID_……
[/Quote]

回复3楼,这个是通过80的http请求来的。但是服务器的端口已经指定(port:12345)。那这段代码是实现不了的。
请楼下各位大大看清楚问题,然后回复。非常感谢!
morrist1987 2012-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fishion 的回复:]

搭建个FTP服务器,然后用FTP方式下载
[/Quote]

不搭建FTP服务器。服务器端口已经指定。
gold_water 2012-02-13
  • 打赏
  • 举报
回复
	LPCTSTR url = _T("http://www.abcxx.com/Bes/images/logo.png");

LPCTSTR fileName = _T("c://lsPic.png");

HINTERNET hNet= ::InternetOpen(_T(""), PRE_CONFIG_INTERNET_ACCESS, NULL, INTERNET_INVALID_PORT_NUMBER, 0);

HINTERNET hUrlFile = ::InternetOpenUrl(hNet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0);
char buffer[1024];
DWORD dwBytesRead = 1;
BOOL bRead = TRUE;
CFile file;
BOOL bCheck = file.Open(fileName,CFile::modeCreate|CFile::modeWrite);
if (bCheck == FALSE)
{
AfxMessageBox(_T("打开文件失败"));
return;
}
while ( bRead&&dwBytesRead>0 )
{
bRead = ::InternetReadFile(hUrlFile, buffer, sizeof(buffer), &dwBytesRead);

if( dwBytesRead>0 )
file.Write(buffer,dwBytesRead);
}
::InternetCloseHandle( hUrlFile );
::InternetCloseHandle( hNet );
file.Close();
fishion 2012-02-13
  • 打赏
  • 举报
回复
搭建个FTP服务器,然后用FTP方式下载

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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