我用VB代码从FTP站点里下载某个需要的图片,代码如下:
    With Inet1
          .URL = "ftp://www.xx.com"
          .UserName = "xx"
          .Password = "xx"
          .Protocol = icFTP
          .RequestTimeout = 120
    End With
    Inet1.Execute , "get  photo\5575.jpg " & App.Path & "\photo\5575.jpg"
    right1 = Inet1.StillExecuting
    Do While Inet1.StillExecuting
       DoEvents
    Loop
上星期测试的时候都一直可以下,这星期网络改为光纤了,下下来的却只是一个空的文件,我咨询了电信,那边已经帮我开了FTP端口,不知道是什么原因,麻烦高手指点

解决方案 »

  1.   

    Inet控件有个Inet1_StateChanged事件,在此世间中有 State 返回信息,
    根据这个信息可判断问题所在State:
         strInetMsg(0) = "未报告状态"
        strInetMsg(1) = "控件正在寻找指定主机的IP地址"
        strInetMsg(2) = "控件已成功找到指定主机的IP地址"
        strInetMsg(3) = "控件正在与指定主机进行连接"
        strInetMsg(4) = "控件已成功与指定主机连接"
        strInetMsg(5) = "控件正在向主机发出请求"
        strInetMsg(6) = "控件已成功向主机发出请求"
        strInetMsg(7) = "控件正在从主机接收反馈信息"
        strInetMsg(8) = "控件已成功从主机接受反馈信息"
        strInetMsg(9) = "控件正在与主机断开"
        strInetMsg(10) = "控件已与主机断开"
        strInetMsg(11) = "在与主机通信的过程中发生了错误"
        strInetMsg(12) = "请求结束且数据已经接收到"
      

  2.   

    问题是找到了,strInetMsg(11)   =   "在与主机通信的过程中发生了错误" ,但是不知道怎么解决,上周都可以的呀,难道是放火墙堵住了?
      

  3.   


    State=11, 再看Inet1.ResponseCode 和 ResponseInfo属性 找问题
      

  4.   

    与主机通信的过程中发生了错误时:
    Inet1.ResponseCode=12002
    Inet1.ResponseInfo=超时是不是由于哪个端口没开放呢?
      

  5.   

    将时间设长点,Ftp端口一般是21,有防火墙吗?是不是防住了?
      

  6.   

    我的路由器是带防火墙,是装光纤后就带防火墙的,以前用ADSL的时候采用这段代码都很顺利的下下来。现在估计就是放火墙的问题了,电信只问我要开哪几个端口,不可以关闭防火墙,我叫他开了21和20,还是不行,是不是还需要开哪个呢?