Indy-FTP->Fehlermeldung



  • Hallo Leute!

    Eine Frage:
    Beim Aufruf von der FTP-Komponente (Indy 9)
    ----------------------
    ldFTP1->Connect(true,0);
    ldFTP1->ChangeDir("/titelseite");
    ldFTP1->Get("test.html","test.html",true,false);
    ldFTP1->Disconnect();
    ----------------------
    kommt folgende Fehlermeldung:
    ----------------------
    Im Projekt1.exe ist eine Exception der Klasse EIdConnClosedGracefully aufgetreten. Meldung: 'Connection Closed Gracefully.'.Prozess wurde angehalten. Mit Einzelne anweisung oder Start fortsetzen.
    ----------------------

    Wenn ich die Get-Zeile rauslasse, geht wenigstens der Verbindungsaufbau schonmal. Was mache ich falsch???

    Martin



  • Auf der Indy-Website gibt's einen eigenen FAQ-Eintrag zum Thema EIdConnClosedGracefully.



  • Wenn ich Bill Gates wäre, würde ich Dich sofort als Chefprogrammierer einstellen!

    Warum bist du so "allwissend"??? 🙂

    Danke!!



  • Soviel Geld kann auch Bill Gates nicht zahlen, dass ich für M$ arbeiten würde. 🙂



  • Hallo!

    Ich habe einen Button und im Click-Ereignis steht folgender Code:

    if(!ldFTP1->Connected()) {
    ldFTP1->Connect(true,0);
    }

    ldFTP1->Put(myStream,"test.txt",false);

    -----

    Beim 1.mal klicken funktioniert's tadellos, nur wenn ich das 2.mal draufklicke bekomme ich folgende Fehlermeldung:

    Im Projekt blabla.. ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: Zugriffsverletzung bei Adresse 00000010. Lesen von Adresse 00000010. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

    Was ist da los??? *Ratlos*

    Martin



  • In welcher Zeile tritt die AV denn auf?
    Wenn es die letzte ist: eventuell hilft es, den Lesezeiger des Streams vorher wieder auf Anfang zu setzen (myStream->Position = 0;).



  • Hallo Jansen,

    der Fehler tritt in der ldFTP->Put... Zeile auf.

    Und es ist auch egal ob ich einen Stream oder eine Datei hab.

    Das lesen funktioniert übrigends... (Get-Funktion).

    Komisch ist auch, daß wenn ich zwei Put-Zeilen untereinander schreibe es tadellos funktioniert. Eben nur nicht bei erneutem Drücken des Buttons...



  • .... *sollte nächstesma genauer lesen edit clear*

    [ Dieser Beitrag wurde am 30.10.2002 um 08:23 Uhr von 1ntrud0r editiert. ]



  • Was soll das heißen 1ntrud0r ?
    Den Satz versteh' ich nicht!



  • hast du den Stream auch created?



  • Ja, hab ich gemacht:
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    myStream=new TStringStream("");

    }

    Nochmal: Es spielt keine Rolle ob ich das so:

    ldFTP1->Put(myStream,"test.txt",false);

    oder so:

    ldFTP1->Put("vorher.txt","test.txt",true,false);

    da steht.

    Bei beiden Versionen bringt er die Fehlermeldung nach dem 2. Klick auf den Button!

    Martin



  • Konnte das jetzt mal ausprobieren und habe hier keinerlei Probleme.

    Welche Indy-Version benutzt du denn genau? Bei meinem TIdFTP::Connect gibt es zB. den zweiten Parameter gar nicht. Ich habe hier 9.00.10, alle früheren 9er waren ja noch Betas.

    Ansonsten: hast du es auch mal mit einem anderen FTP-Server probiert? Und was ist, wenn du weitere Button-Clicks unterbindest, bis die Datei jeweils komplett übertragen wurde?



  • Meine Güte.... wenn ich jetzt anwesend wäre, würdet Ihr mich mit Tomaten beschmeißen... manchmal sieht man die einfachsten Dinge nicht mehr...

    Sorry, daß ich euch "gequält" habe...
    Mein Fehler war die Zeile:

    myStream->~StringStream();

    ist ja logisch, daß er dann 'nen Fehler macht...

    Also gut, wieder was dazugelernt!!!

    ..nochmal danke!

    Martin



  • Diesen Thread habe ich über die Suchen-Funktion gefunden. Und auch noch andere Themen zu der Meldung "Connection Closed Gracefully"
    Habe auch die Indy-Hilfe gelesen und die Exception abgefangen.
    Meine Frage ist mehr: _warum_ wird die Verbindung geschlossen? Bzw. _wie_ kann ich es verhindern, dass die Verbindung geschlossen wird?
    Bei mir ist folgendes: Auf Button-Click wird eine Verbindung zum Server aufgebaut. Das Funktioniert. Wenn ich direkt nach dem Aufbau IdFTP1->RetrieveCurrentDir() aufrufe bekomme ich auch das Verzeichnis zurückgeliefert.
    Wenn ich aber IdFTP1->RetrieveCurrentDir() versuch über einen andern Button aufzurufe wird die Verbindung geschlossen und ich bekomme auch das Verzeichnis nicht zurückgeliefert. Das würde heissen: Wollte ich ein FTP-Prog schreiben, dann ginge das nicht, weil ständig die Verbindung geschlossen wird.
    Also: wie kann ich das Schliessen der Verbindung verhindern? Die Indy-Hilfe hat mir da nicht geholfen.



  • Bin ich denn der einzige der das Problem hat? Oder kennt das noch jemand? *hiermitdenthreadwiedernachobenschieb 😉 * *schieb*



  • STFW: google: "Connection Closed Gracefully"



  • dschensky schrieb:

    STFW: google: "Connection Closed Gracefully"

    👎 danke, aber so schlau war ich auch schon. Ich habe nichts passenden gefunden. 👎



  • Jacques schrieb:

    👎 danke, aber so schlau war ich auch schon. Ich habe nichts passenden gefunden. 👎

    Tatsächlich ?
    Na gut, ich werde mal nicht so sein: http://www.google.de/search?q=Connection+Closed+Gracefully&ie=UTF-8&oe=UTF-8&hl=de&meta=

    Und dort muß man dann mit der linken Maustaste auf den dritten Link raufklicken und kommt dann zu einer Seite, die Dich zu einem Indy-Artikel führt, der Deine Frage beantwortet.



  • OK, der dritte link für mich zwar zu einer Seite mit Links zu artikeln. Aber leider bekomme ich - zumindest zur Zeit - keine Verbindung zu www.swissdelphicenter.ch und kann somit auch nicht die Artikel lesen. Damit bin ich jetzt genauso schlau wie vorher.



  • Jacques schrieb:

    Aber leider bekomme ich - zumindest zur Zeit - keine Verbindung zu www.swissdelphicenter.ch ...

    kann keine Probleme feststellen, probier's einfach nochmal: http://www.swissdelphicenter.ch/en/showarticle.php?id=1


Anmelden zum Antworten