Einzelnen Beitrag anzeigen

mck

Registriert seit: 12. Jul 2004
8 Beiträge
 
#1

FTP über Proxy (Fehler bei Connect > GetResponse)

  Alt 21. Mai 2005, 01:22
Hallo,

Ich versuche mit "Indy FTP Client" die Verbindung mit einem Internet FTP Server über ProxyServer(ProxyPlus Test Anwendung)
Jedes mal bekomme ich eine Exception Message "Connection Closed Gracefully."
Habe alle mögliche ProxyTypes ausprobiert, und es geht nicht.
(Benutze Indy 10)

Glechzeitig habe ich das gleiche mit TotalCommander ausprobiert, funktioniert ohne Probs. aber nur mit dem Typ: "HttpProxy Mit Ftp"

Wenn ich aber den Proxy server ausschalte, und eine direkte Verbindung herstelle, kann ich ohne Probs. auf mein Inet-FTP zugreifen. (natürlich in diesem Fall sind die Proxy einstellungen auf "fpcmNone" = aus)

Habe versucht Fehler zu verfolgen (Siehe LOG) :
Also:
idFTP.Connect => GetResponse([220]) => CheckConnected
und bei CheckConnected hängt der erstmal ca. 5 Minuten, dann macht die Exception.
(Siehe LOG unten)



So schaut mein Code aus ( fast so! )

// Using Indy V10

idFTP1.AutoLogin := True;
idFTP1.Username := "FTPUserName";
idFTP1.Password := "FTPUserPasword";
idFTP1.Host := "Target FTP Host IP Address"; // 70.***.***.***

idFTP1.ProxySettings.ProxyType := fpcmOpen; // or fpcmHttpProxyWithFtp;
idFTP1.ProxySettings.UserName := ""; // no Proxy - UserName and password requed
idFTP1.ProxySettings.Password := ""; // no Proxy - UserName and password requed
idFTP1.ProxySettings.Host := "ProxyServerIPAddress"; //192.168.***.***
idFTP1.ProxySettings.Port := 4480; // Proxy Port

idFTP1.Passive := TRUE; // or FALSE?
idFTP1.ConnectTimeOut := 7000;
idFTP1.TransferTimeOut := 7000;

try
idFTP1.Connect; // => Exception by GetResponse([220])=>CheckConnected
ShowMessage('Connect is OK!');
except
on E : Exception do
begin
ShowMessage(E.Message); // bzw. Add Line to LOG Memo.
end;
end;


Und hier ist die LOG Ausgabe.
Kommt von meinem Unit + idFTP,idTCPConnection.

///////////////// LOG OUT (FROM Connect Function) /////////////////
PROXY-TYPE:Open
PROXY-HOST:192.168.***.***
PROXY-USER:
FTP-HOST:70.***.***.***
FTP-USER:FTPUserName
FTP: PASSIVE
FTP-SET-CONNECTTIMEOUT:7000
FTP-SET-TRANSFERTIMEOUT:7000
Connecting to FTP ...
LOG:FTPCONNECTSTART // Calling idFTP1.Connect
LOGROXY_L:70.***.***.***:21 // Parameters in the Connect function
LOGROXY_F:192.168.***.***:4480 // Parameters in the Connect function
LOG:USING TLC? => NO
LOG:CALL CONNECT... // inherited Connect;
FTP-STATUS:Connecting to 192.168.***.***. // idFTP1.OnStatus
FTP-STATUS:Connected. // idFTP1.OnStatus
LOG:CALL RESPONSE... // Calling GetResponse([220])
LOG:CALL GetInternalResponse... // Calling GetInternalResponse
LOG:CALL CheckConnected... // CheckConnected => after 5 Min. => Exception
FTP-STATUSisconnected. // idFTP1.OnStatus
ERROR!:Connection Closed Gracefully. // Exception !!!!
///////////////////////////////////////////////////////////////////////// END LOG ///////////////////

Was mach ich denn falsh?
Hat jemand einen funktionierenden Beispiel Code?

Grüß,
Alex
  Mit Zitat antworten Zitat