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吧!!请问如何设置啊???
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吧!!请问如何设置啊???
不過我認為如果D6能通過,D7也應該可以的..........
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();
yk1028() 我开始以为也是这样的,
但设置上
ProxySettings.Host :='192.168.0.1';
ProxySettings.Port :='1080';
(这是我这里的代理配置)
还是连接不上!
而且还有个ProxySettings.ProxyType属性
TIdFtpProxyType = (fpcmNone, fpcmUserSite, fpcmSite, fpcmOpen, fpcmUserPass, fpcmTransparent, fpcmHttpProxyWithFtp ); //TIdFtpProxyType
应该是你的ftp端口号错误,默认的为21(也许不是,问问你的网络管理员代理服务器ftp端口号为多少),1080是socks代理的默认端口号。如果你的ftp代理需要身份验证,你程序中还要加上两句
idFtp1.ProxySettings.UserName :=xx;
idFtp1.ProxySettings.Password :=xxx;
至于ProxyType属性我也没搞清楚,好像与客户端向服务器发请求时消息格式有关系,你查一下vcl(idftp单元)就发现了当调用login方法时,客户端就根据ProxyType属性不同发送不同的命令。或你看一下cuteFtp,flashGet软件通过代理连接时就会有不同的格式供你选择,我也搞不清楚有什么不同。
另外可以看一下demo中一个关于ftp的例子
gz
.....................Port =21;照样出现此错误提示(代理FTP端口是默认值21)我觉得,还是得通过Socks5!,就是不知道如何设置,d6下的idFTP有Socket属性
ftp代理应该应该没错的,我曾经这样成功连接上的。你把你的cuteFtp不用socks5,改成直接连接试试能不能成功。或者把该贴放到网络版去问问。
我用socks5连试试吧
在D7下却找不到在哪儿设,好象是在
IdFTP1.Socket.SocksInfo.Version
下设,但不行。
不知为何?