我使用idftp下载时,出现不稳定现象,我对一批文件下载时,文件大小都在1M左右,有时候下载只要100到300毫秒,有时候却要1秒到3秒,各位大侠碰到过这样的情况,请指教。

解决方案 »

  1.   

    因为网络都不是很稳定的LYFTP都是用Indy开发的,还可以过得去http://lysoft.7u7.net
      

  2.   

    因为现在还在测试,ftp是建在本地的,我用其他ftp软件下载,或者直接通过ie下载都没有出现这个问题
      

  3.   

    应该不是网络不稳定的原来,idftp应该也没有这么大的bug,不知道是不是我代码的问题,因为idftp的get函数是阻塞的,所以我是用一个循环来下载一个目录下的所有文件,每等get函数执行完则get下一个,并且没有对事件OnWorkEnd做任何处理,这样是不是会有问题。
      

  4.   

    我刚才做了一个测试程序,用手动的方式下载一批文件,即下载完一个文件,再点击按钮下载另一个,如果刚下载完一个,马上点击则很容易出现下载时间太长的情况,如果过一段时间再点击,则不会出现这样的情况,是不是每次下载后,idftp有什么资源之类必须释放,还是其他的原因造成这样的呢...
      

  5.   

    奇怪了,我用的INDYFTP下载,也会有一大批数据下载,程序运行快三年了,一直没有遇到过楼主说的问题.....我还是用的D6带的INDY控件做的.....楼主是用的哪个版本的INDY?
      

  6.   

    把RecvBufferSize的值加大一些看看
      

  7.   

    也是d6自带的,应该是indy 8把,我把缓冲加到320k也这样,你一般加到多少
      

  8.   

    我代码大致是这样的,应该没什么问题吧(不是实际代码,只是大致思路):
    IdFtp.Connect
    IdFtp.ChangeDir
    IdFtp.List
    for i:=0 to List.Count do
    begin
      GetName;
      if IsDirectory then
      begin
        Continue;
      end
      else
      begin
        IdFtp.Get;
      end;
    end;
      

  9.   

    终于发现问题,我把自带的indy8给卸载了,然后装了indy9就不再出现这个问题,太绝了,不知道indy10现在稳不稳定,是不是比indy9更好还有我转到indy9是为什么执行以下的语句会弹出异常:
    idftp1.List(listbox1.Items);
    idftp1.Get(sFtp,sSave, true);
    异常信息:
    Project Project1.exe raised exception class EIdConnClosedGracefully with message
    'Connection Closed Gracefully.'.Process stopped.Use Step or Run to continue
    但是数据都可以正常的取道,不知道是为什么
      

  10.   

    看错了,不是异常信息,只是inde抛出的提示