cuteftp客户端能够通过http1.1链接到服务端(服务端是自己用delphi7开发的),但是通过socks5代理没有办法连接到服务端,我自己用delphi写的客户端能够连接到服务端,但是在上传文件的时候报socket error 10054错误,请大虾帮忙。。,到底怎么解决?在线等待,非常急。代码如下:
IdFTP1.Disconnect;
IdFTP1.Host := FtpIniFile.ReadString('FTP配置','HostName','');
sLocalFileName := IncludeTrailingPathDelimiter(FtpIniFile
.ReadString('程序参数','dictionary',''));
//FTP登录用户名
IdFTP1.Username := FtpIniFile.ReadString('FTP配置','UserName','');
//FTP登录密码
IdFTP1.Password := FtpIniFile.ReadString('FTP配置','Password','');
//FTP端口号
IdFTP1.Port := FtpIniFile.ReadInteger('FTP配置','Port',0);
//通过代理上网进行FTP传输
if FtpIniFile.ReadInteger('FTP配置','isProxy',0) = 1 then
begin
IdFTP1.IOHandler := IdIOHandlerSocket1;
IdIOHandlerSocket1.SocksInfo := IdSocksInfo1;
IdSocksInfo1.Version := svSocks5;
IdSocksInfo1.Host := FtpIniFile.ReadString('FTP配置',
'ProxyHostName','');
IdSocksInfo1.Port := FtpIniFile.ReadInteger('FTP配置',
'ProxyPort',0);
IdFTP1.ProxySettings.ProxyType := fpcmNone;
IdFTP1.ProxySettings.Host := FtpIniFile.ReadString('FTP配置',
'ProxyHostName','');
IdFTP1.ProxySettings.Port := FtpIniFile.ReadInteger('FTP配置',
'ProxyPort',0);
//IdFTP1.Passive := true;
if FtpIniFile.ReadInteger('FTP配置','isProxyVerif',0) = 1 then
begin
IdSocksInfo1.Authentication := saUsernamePassword;
IdSocksInfo1.Username := FtpIniFile.ReadString('FTP配置',
'ProxyUserName','');
IdSocksInfo1.Password := FtpIniFile.ReadString('FTP配置',
'ProxyPassword','');
IdFTP1.ProxySettings.Username := FtpIniFile.ReadString('FTP配置',
'ProxyUserName','');
IdFTP1.ProxySettings.Password := FtpIniFile.ReadString('FTP配置',
'ProxyPassword','');
end
else
IdSocksInfo1.Authentication := saNoAuthentication;
end
else
IdFTP1.IOHandler:=Nil;if IdFTP1.Connected then IdFTP1.Disconnect;
begin
try
IdFTP1.Connect();
except
M_info.Lines.Add(formatdatetime('yyyy-mm-dd HH:MM:SS',now) +
' FTP连接错误!');
Stb_Main.Panels[1].Text := 'FTP连接错误!';
exit;
end;
IdFTP1.Disconnect;
IdFTP1.Host := FtpIniFile.ReadString('FTP配置','HostName','');
sLocalFileName := IncludeTrailingPathDelimiter(FtpIniFile
.ReadString('程序参数','dictionary',''));
//FTP登录用户名
IdFTP1.Username := FtpIniFile.ReadString('FTP配置','UserName','');
//FTP登录密码
IdFTP1.Password := FtpIniFile.ReadString('FTP配置','Password','');
//FTP端口号
IdFTP1.Port := FtpIniFile.ReadInteger('FTP配置','Port',0);
//通过代理上网进行FTP传输
if FtpIniFile.ReadInteger('FTP配置','isProxy',0) = 1 then
begin
IdFTP1.IOHandler := IdIOHandlerSocket1;
IdIOHandlerSocket1.SocksInfo := IdSocksInfo1;
IdSocksInfo1.Version := svSocks5;
IdSocksInfo1.Host := FtpIniFile.ReadString('FTP配置',
'ProxyHostName','');
IdSocksInfo1.Port := FtpIniFile.ReadInteger('FTP配置',
'ProxyPort',0);
IdFTP1.ProxySettings.ProxyType := fpcmNone;
IdFTP1.ProxySettings.Host := FtpIniFile.ReadString('FTP配置',
'ProxyHostName','');
IdFTP1.ProxySettings.Port := FtpIniFile.ReadInteger('FTP配置',
'ProxyPort',0);
//IdFTP1.Passive := true;
if FtpIniFile.ReadInteger('FTP配置','isProxyVerif',0) = 1 then
begin
IdSocksInfo1.Authentication := saUsernamePassword;
IdSocksInfo1.Username := FtpIniFile.ReadString('FTP配置',
'ProxyUserName','');
IdSocksInfo1.Password := FtpIniFile.ReadString('FTP配置',
'ProxyPassword','');
IdFTP1.ProxySettings.Username := FtpIniFile.ReadString('FTP配置',
'ProxyUserName','');
IdFTP1.ProxySettings.Password := FtpIniFile.ReadString('FTP配置',
'ProxyPassword','');
end
else
IdSocksInfo1.Authentication := saNoAuthentication;
end
else
IdFTP1.IOHandler:=Nil;if IdFTP1.Connected then IdFTP1.Disconnect;
begin
try
IdFTP1.Connect();
except
M_info.Lines.Add(formatdatetime('yyyy-mm-dd HH:MM:SS',now) +
' FTP连接错误!');
Stb_Main.Panels[1].Text := 'FTP连接错误!';
exit;
end;
楼主在贴子标题中称“急急急”,却只给0分,看来对问题还是不够重视,建议加分。