150分求解,请大侠进入!!!!(有用处的回答皆有分) 1.windows 2000 server 默认的配置就支持断点续传的。2.网络蚂蚁就是一个很好的例子: 打开netant,下载一个比较大的文件,再查看它的log就可以发现些什么的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 再请参与啊,我使用InternetSetFilePointer来移动指针,始终返回-1的错误值 直接API方式应该不行的,用BOOL FtpCommand( IN HINTERNET hConnect, IN BOOL fExpectResponse, IN DWORD dwFlags, IN LPCTSTR lpszCommand, IN DWORD_PTR dwContext, OUT HINTERNET *phFtpCommand);加上rest rang.... 应该就可以实现了。详细的请参见FTP协议规范 http://www.vchelp.net/source/source_ii.htm vchelp关于ftp的源码有好几个呢,也许对你有用。 是啊,vchelp有一个支持HTTP/FTP多线程和断点的源码,去看看吧 请问有谁用过InternetSetFilePointer函数吗,请指教 据MSDN文档,该函数只能用在HTTP/HTTPS 上面。hFile=InternetOpenUrl(....);InternetSetFilePointer(hFile,bytes,NULL,FILE_BEGIN,0);不能在FTP下面用哦 但是我使用InternetSetFilePointer总是返回-1啊,这表示错误啊,请高手继续参与讨论,不胜感激 所以你不能用这个函数来对FTP操作!!!!!另外,如果你连接的server不支持CONTENT-LENGTH,你也没有没有办法续传。 HTTP源码#include "stdafx.h"#include "windows.h"#include "wininet.h"#include "stdio.h"#pragma comment (lib,"wininet")int main(int argc, char* argv[]){ HINTERNET hinet,hhttp; hinet=InternetOpen("U",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL); printf("%08X\n",hinet); hhttp=InternetOpenUrl(hinet,"http://aus",NULL,NULL,NULL,NULL); printf("%08X\n",hhttp); printf("%d\n",InternetSetFilePointer(hhttp,100,NULL,FILE_BEGIN,NULL)); return 0;} FTP 代码// winint.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "windows.h"#include "wininet.h"#include "stdio.h"#pragma comment (lib,"wininet")typedef BOOL(WINAPI *FtpCommand)(HINTERNET ,BOOL ,DWORD ,LPCTSTR ,DWORD_PTR ,HINTERNET*);int main(int argc, char* argv[]){ HINTERNET hinet,hftp,hconnect; hinet=InternetOpen("U",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL); printf("%08X\n",hinet); hftp=InternetConnect(hinet,"aus",10000,"qzl","qzl",INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,NULL); printf("%08X\n",hftp); HMODULE hlib=LoadLibrary("wininet.dll"); FtpCommand ftpcommand=(FtpCommand)GetProcAddress(hlib,"FtpCommandA"); printf("%d\n",ftpcommand(hftp,0,FTP_TRANSFER_TYPE_ASCII, "REST 100",NULL,NULL));// now u can use FtpGetFile(..........); return 0;} to Kevin_Qing,如果Ftp过程中,网络断开的话,怎样才能达到续传的目的呢,请一定要帮忙的 to Kevin_Qing,如果Ftp过程中,网络断开的话,怎样才能达到续传的目的呢,请一定要帮忙的 to Kevin_Qing:请帮忙啊,请问你有这样的代码吗,请帮忙啊。我在加100分给你 计算已经写到磁盘上面的文件大小nSize,下回从nSize-rollback 开始读。rollback一般设为4096左右,主要是避免文件最后几个字节写入有误。另外,上面给的代码只能seek成功,但是还不能Read,跟winapi的实现有关系。所以最好自己写ftp client。有问题请 mailto :[email protected] Kevin_Qing你好:很高兴你能够帮助我,我做这个断点下载已经很长时间了,但是一直都找不到合适的方法,我看到了你的回复,现在还没有开始测试,我有一个疑问,我查阅了MSDN,也没有能够看出来FtpCommand能够实现seek这个功能,你能够给我指点吗,谢谢。另外seek以后,我是否应该使用InternetReadFile来读取文件呢,也请你指导,我太笨,请你不要见笑我已经发EMAIL给你了,希望你能够帮忙 webbrowser2编译一直报错的问题 directx入门学习 请问公司的outlook邮箱在家里怎么收邮件?谢谢 谁有http的文件下载源代码 一个简单的基于TCP的多线程聊天程序 这个映射是四个元素还是二个元素,请高手指点! 请教:如何更改xml节点的属性?(昨天的帖子没写清楚) 在对话框中绘制了几个图形,但在弹出时毫无现示 如何在文挡/视图结构中切换视图? 编个程序,使任务管理器的CPU使用记录一直显示为一条直线,高手帮帮忙! 请大家推荐关于学习vc++的书! 俺看了一篇责怪别人翻译太次的文章,文中说“有的翻译者水平太低,竟把owner draw button?拥有者描绘按钮。。。”
BOOL FtpCommand(
IN HINTERNET hConnect,
IN BOOL fExpectResponse,
IN DWORD dwFlags,
IN LPCTSTR lpszCommand,
IN DWORD_PTR dwContext,
OUT HINTERNET *phFtpCommand
);加上rest rang.... 应该就可以实现了。详细的请参见FTP协议规范
hFile=InternetOpenUrl(....);
InternetSetFilePointer(hFile,bytes,NULL,FILE_BEGIN,0);不能在FTP下面用哦
#include "stdafx.h"
#include "windows.h"
#include "wininet.h"
#include "stdio.h"
#pragma comment (lib,"wininet")int main(int argc, char* argv[])
{
HINTERNET hinet,hhttp;
hinet=InternetOpen("U",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL);
printf("%08X\n",hinet);
hhttp=InternetOpenUrl(hinet,"http://aus",NULL,NULL,NULL,NULL);
printf("%08X\n",hhttp);
printf("%d\n",InternetSetFilePointer(hhttp,100,NULL,FILE_BEGIN,NULL));
return 0;
}
//#include "stdafx.h"
#include "windows.h"
#include "wininet.h"
#include "stdio.h"
#pragma comment (lib,"wininet")
typedef BOOL(WINAPI *FtpCommand)(HINTERNET ,BOOL ,DWORD ,LPCTSTR ,DWORD_PTR ,HINTERNET*);int main(int argc, char* argv[])
{
HINTERNET hinet,hftp,hconnect;
hinet=InternetOpen("U",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,NULL);
printf("%08X\n",hinet);
hftp=InternetConnect(hinet,"aus",10000,"qzl","qzl",INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,NULL);
printf("%08X\n",hftp);
HMODULE hlib=LoadLibrary("wininet.dll");
FtpCommand ftpcommand=(FtpCommand)GetProcAddress(hlib,"FtpCommandA");
printf("%d\n",ftpcommand(hftp,0,FTP_TRANSFER_TYPE_ASCII, "REST 100",NULL,NULL));
// now u can use FtpGetFile(..........); return 0;
}
请帮忙啊,请问你有这样的代码吗,请帮忙啊。我在加100分给你
很高兴你能够帮助我,我做这个断点下载已经很长时间了,但是一直都找不到合适的方法,我看到了你的回复,现在还没有开始测试,我有一个疑问,我查阅了MSDN,也没有能够看出来FtpCommand能够实现seek这个功能,你能够给我指点吗,谢谢。另外seek以后,我是否应该使用InternetReadFile来读取文件呢,也请你指导,我太笨,请你不要见笑
我已经发EMAIL给你了,希望你能够帮忙