Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi FTP über Proxy (Fehler bei Connect > GetResponse) (https://www.delphipraxis.net/46238-ftp-ueber-proxy-fehler-bei-connect-getresponse.html)

mck 21. Mai 2005 00:22


FTP über Proxy (Fehler bei Connect > GetResponse)
 
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
LOG:PROXY_L:70.***.***.***:21 // Parameters in the Connect function
LOG:PROXY_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-STATUS:Disconnected. // idFTP1.OnStatus
ERROR!:Connection Closed Gracefully. // Exception !!!!
///////////////////////////////////////////////////////////////////////// END LOG ///////////////////

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

Grüß,
Alex

KringKing 13. Mai 2009 11:26

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Ich habe ein ähnliches Problem, das mit Connection Closed Gracefully habe ich nur wenn ich mein Programm aus Delphi (Delphi5) heraus starte.

Allerdings funktioniert das mit dem Proxy bei mir auch nicht, ich bin in der Schule und arbeite an einem FTP Client. Um in der Schule in benutzen zu können muss ich die Proxy Daten eintragen, doch mein Programm verbindet einfach nicht und stürzt ab.

KringKing 13. Mai 2009 16:56

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Kann da wirklich keiner helfen? Das glaube ich nicht.

Mithrandir 13. Mai 2009 17:04

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Hallo KringKing :dp:

Mal ein paar Hilfen für den Einstieg im Forum ;) :
  • Pushen erst nach 24 Stunden! :warn:
  • Bei konkreten Probleme hilft der Quelltext

Gruß,
Daniel

KringKing 13. Mai 2009 17:34

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Delphi-Quellcode:
if verbinden then with MyFTP do  // Wenn keine Verbindung besteht dann Verbinde
        begin
        // Eingabe der FTP Daten
        Username := Edit2.Text;
        Password := Edit3.Text;
        Host := Edit1.Text;
        ProxySettings.ProxyType := fpcmOpen;
        ProxySettings.UserName := '';
        ProxySettings.Password := '';
        ProxySettings.Host := '85.214.148.109';
        ProxySettings.Port := 3128;
             try
                Connect;  // Verbindung herstellen
                ShowMessage ('Verbindung hergestellt.');
                Button1.Caption := 'Trennen';
                ClearAll(true); // Passwortfeld leeren
                globalpath := '/';
                ActList;
             except
                ShowMessage ('Verbindung fehlgeschlagen.');
             end;
        end
Mein Programm macht absolut garnichts und gibt auch keine Fehlermeldung aus.

shmia 14. Mai 2009 09:40

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Bei FTP gibt es kaum einen Standard für Proxyserver.
Es gibt bestimmt 10 versch. Varianten die einem das Leben schwer machen.
Es gibt aber eine besondere Variante und das ist der sog. Cern-Proxy.
Der Proxyserver wird vom Client über HTTP (!) angesprochen und redet mit dem eigentlichen FTP-Server mit FTP.
Das bedeutet, dass in diesem Fall das File Transfer Protokoll für den Client völlig nutzlos ist, denn er muss ja HTTP sprechen.
Der Proxytype wäre hier
Delphi-Quellcode:
fpcmHttpProxyWithFtp, //HTTP Proxy with FTP support. Will be supported in Indy 10

KringKing 14. Mai 2009 13:40

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Also ich habe das nicht so ganz verstanden, liegt es jetzt an dem Proxy oder an den Einstellungen der Indy Komponente.

shmia 14. Mai 2009 17:25

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Zitat:

Zitat von KringKing
...an den Einstellungen der Indy Komponente.

ProxySettings.ProxyType muss auf fpcmHttpProxyWithFtp gesetzt werden.
Wenn du min. Indy Version 10 hast und die Programmierer von Indy gute Arbeit geleistet haben, dann hast du eine Chance, dass es klappt.

KringKing 14. Mai 2009 18:23

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Problem ist nur das ich Indy9 verwende, da ich mein Programm mit Delphi 5 erstellen muss.

Habe Indy9 auf Empfehlung verwendet, da es stabiler laufen würde mit D5.

Mithrandir 14. Mai 2009 20:11

Re: FTP über Proxy (Fehler bei Connect > GetResponse)
 
Dann wird dein Programm so nicht funktionieren, wenn du an Delphi 5 gebunden bist. Entweder du probierst die 10er aus, oder du verwendest Turbo Delphi. Da muss du die INDY-Komponenten aber von Hand erzeugen, im Quelltext. Drag'n'Drop auf die Form is nicht. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz