参考http ftp协议的rfc就可以了吧!
其实只是一个给定偏移量后接收数据的问题:
如ftp下面的:
  rest 1000
  get somefile.ext a.ext
  这样将把somefile.ext的1000偏移地方的数据回传。
以后接收的数据是从1000开始的。
  你看一下netant的下载log就可以很清楚的看到怎么
做的。不过都需要服务器端支持。

解决方案 »

  1.   

    我不清楚网络蚂蚁的断点续传是怎样实现的,但有一个思路:
    1.断点续传:记录上次下在文件downloadfile的长度lenth1,设置url文件下载位置在lenth1,开始读取url文件并追加到downloadfile.
    2.多通道下载:创建几个线程同时打开一个服务器上的文件(如:http类型),分别从不同的位置读取文件的一部分.
      

  2.   

    首先断点续传需要服务器的支持;
    如果是Http服务器的话,在向Server发送请求时加上下面一句:
    Range: bytes=12345-
    就表明是从文件的12345字节处开始下载。
    如果是Ftp服务器的话,就在登录成功后发送下面一条命令:
    REST 12345
    就可以实现从文件的某一特定的位置开始下载。
    这样,你把下载的东西写到文件的指定位置,就实现了断点续传。
      

  3.   

    mr/mr. dengdun:
        有两个问题:
      1  我如何知道当前下载的位置
      2  可不可以在发送以上请求时加上结束位置的信息
    请指教!  
    chinabjgod
      

  4.   

    dengdun:
       我在FTP 上试了REST ,接着用RETR 怎么不能DownLoad,没有用REST 时执行很好。
        您能不能把关键地方 Mail source code to me?
                                      yaya
                                     [email protected]            
      
      

  5.   

    出现这种情况的可能原因就是该Ftp服务器不支持断点续传,你可以在下载之前先尝试发送一个REST 12345的命令,如果服务器应答为OK的话便再次发送REST 12345命令。