我用多线程做了一个Indy控件中FTP下载的单元,先要对IdFTP进行登录,但是如果网络是断的或者是远程IP限制本地无法与远程主机连接的话,用IdFTP进行connect的时候会报出socket错误,怎样将这个异常捕获,使这个线程在后台默默运行,即使无法连接也不会出现错误?
我用IdIcmpclient控件也ping过,在IdIcmpclient的OnReply事件中判断ping的回执是否是连接上再进行FTP连接,可是在ping的时候也会报错。

解决方案 »

  1.   

    我不太明白你的意思,在路由器开个端口?进行FTP连接的时候肯定是有用户名密码和HOST的,但是就是如果是断线的时候connect或者ping都会报错,怎样屏蔽或者捕捉这个错误,让他报不出来?
      

  2.   

    就是用icmpclient控件调用ping的时候也会报错,断网的情况下,我在win7下没问题,可是到XP下调用ping就会报错
      

  3.   

    解决了。。
    用IdFTP连接的时候,对connect以及后续动作进行try,然后except捕获e:exception异常就可以了。
    这样虽然在调试阶段会报出socket连接不上的错误,但是生成的程序在运行的时候不会报错,异常会被正常捕获。