要求: 使用Wininet.dll 编写一个Client程序
协议: FTP
服务器: Redhat Linux 9 ftpd.exe 
客户机: Win2k pro, 动态的定位和读取服务器中长度不断增加的文件实现类似于CuteFtp5.0或者netant1.25中断点续传的功能,但是要求用wininet.dll

解决方案 »

  1.   

    Wininet中的ftp类不支持断点续传,只支持http的断点续传。The MFC class CInternetFile provides a base class for the CHttpFile and CGopherFile file classes.CInternetFile::Seek()的注释:At this time, a call to this member function is only supported for data associated with CHttpFile objects. It is not supported for FTP or gopher requests. If you call Seek for one of these unsupported services, it will pass back you to the Win32 error code ERROR_INTERNET_INVALID_OPERATION.
      

  2.   

    我做过一个监控UNIX下,某个目录的程序:每隔一段时间读远程服务器的某个目录,如果发现有文件,则将文件取到本地,主要是使用FTP WIN API,SDK也可以,类也可以你的这个程序和我所说的类似,如果该文件确定是增加,可以这样来考虑:第一次下载的时候,在本地做一个日志文件,记载该文件名,文件大小,文件最后修改时间等,下次同样读该文件,发现文件大小发生变化,可打开该文件,只取增加的部分,将此部分写到本地该文件末尾即可,或者比较苯的方法就是重新下载该文件,覆盖原文件就可以
      

  3.   

    只要FTP服务器支持续传,只要每次连接FTP登录后,先发送REST命令定位从文件哪开始接收后,再与ftp服务器建立数据连接recv就可以了。
      

  4.   

    to zhanshenpkl(LittlePK)
    是啊,MFC关于FTP方式传输文件的类库不支持断点定位,Seek一用就错误
    所以我现在用Platform SDK函数FtpCommand,和InternetReadFile实现.
      

  5.   

    To Crob(我干嘛这么帅~~~) 
    定位后如何建立数据连接呢?
    能发例子代码吗? [email protected]
      

  6.   

    To  mfc168(闶阆) 
    那你在Windows下用SDK实现的吗?