d6下IdFTP有
    Socket.SocksInfo.Version :=svSocks5;
    Socket.SocksInfo.Host := '192.168.0.1';
    Socket.SocksInfo.Port := 1080;
可以设置代理服务上传,一切正常D7下的IdFTP没有了Socket属性了!!~!!!
确有个 ProxySettings 属性,d7下通过代码可以找到Socket属性
IdFTP1.Socket.SocksInfo.....
也可以设置,编译也通过,但运行出错!~~~也须关键在ProxySettings吧!!请问如何设置啊???

解决方案 »

  1.   

    沒用過D7,頂下先.........
    不過我認為如果D6能通過,D7也應該可以的..........
      

  2.   

    idFtp1.Host :=edtFtpServer.Text;
        idFtp1.Port :=strtoint(trim(edtFtpPort.Text ));
        idFtp1.Username :=edtUserName.Text ;
        idFtp1.Password :=edtPwd.Text ;
        if cbProxy.Checked then  //use proxy
          begin
            idFtp1.ProxySettings.Host :=edtProxyFtp.Text;
            idFtp1.ProxySettings.Port :=strtoint(edtProxyPort.Text );
          end;
        idFtp1.Connect();
      

  3.   

    to 
    yk1028() 我开始以为也是这样的,
          但设置上
            ProxySettings.Host :='192.168.0.1';
            ProxySettings.Port :='1080';
            (这是我这里的代理配置)
          还是连接不上!
    而且还有个ProxySettings.ProxyType属性
      TIdFtpProxyType = (fpcmNone, fpcmUserSite, fpcmSite, fpcmOpen,  fpcmUserPass, fpcmTransparent,  fpcmHttpProxyWithFtp ); //TIdFtpProxyType
      

  4.   

    ProxySettings.Port :='1080';
    应该是你的ftp端口号错误,默认的为21(也许不是,问问你的网络管理员代理服务器ftp端口号为多少),1080是socks代理的默认端口号。如果你的ftp代理需要身份验证,你程序中还要加上两句
    idFtp1.ProxySettings.UserName :=xx;
    idFtp1.ProxySettings.Password :=xxx;
    至于ProxyType属性我也没搞清楚,好像与客户端向服务器发请求时消息格式有关系,你查一下vcl(idftp单元)就发现了当调用login方法时,客户端就根据ProxyType属性不同发送不同的命令。或你看一下cuteFtp,flashGet软件通过代理连接时就会有不同的格式供你选择,我也搞不清楚有什么不同。
    另外可以看一下demo中一个关于ftp的例子
    gz
      

  5.   

    idFTP的Demo我也看过了 !并没有用到代理,cuteFtp,flashGet都有Socks代理设置ProxySettings,中好像没有Socks的任何迹象啊!而是连接错误的提示:而设置上 Socket Error # xxxxxx
    .....................Port =21;照样出现此错误提示(代理FTP端口是默认值21)我觉得,还是得通过Socks5!,就是不知道如何设置,d6下的idFTP有Socket属性
      

  6.   

    我没连接过socks代理,d6又没用过.
    ftp代理应该应该没错的,我曾经这样成功连接上的。你把你的cuteFtp不用socks5,改成直接连接试试能不能成功。或者把该贴放到网络版去问问。
    我用socks5连试试吧
      

  7.   

    在D6下可以设置Socket的Version 为Socket5或其它。
    在D7下却找不到在哪儿设,好象是在
    IdFTP1.Socket.SocksInfo.Version
    下设,但不行。
    不知为何?