FTP-Dateiübertragung per Indy
-
Hallo,
also ich wollte mir ein Programm basteln, mit dem ich per FTP Dateien von PC A nach PC B schicken kann.
Dazu habe ich mir einen Client gemacht mit Indy, der bisher nur als Guest connected.
Auch einen Server habe ich, jedoch weiß ich nicht, was ich dem Server alles sagen muss und wie.
Momentan bekomme ich nach dem Connecten die Fehlermeldung: "No execute handler found."
Nach einigen Stunden googlen wurde mir klar, dass ich dem Server irgendwie sagen muss, was er zu tun hat. Jedoch fand ich nur Dinge über DirectoryListing.
Nun mein Problem: Wie muss ich den Server programmieren, damit ich Connecten und mit Client->Put(...); eine Datei auf den Server machen kann?
Dabei geht es mir nur um den Server, der Client ist kein Problem.

Ich hoffe, ich habe mich verständlich ausgedrückt!

Danke im vorraus.
-
Übrigens: Wieso zeigt er das Wort "v-o-r-r-a-u-s" nicht an? (ohne die -)
Jetzt aber nochmal zum Thema:
Ich wollte euch noch schnell den bisherigen Client-Quellcode zeigen. Vllt. hilft er euch:void __fastcall TForm1::BtnConnectClick(TObject *Sender) { if(Client->Connected()) Client->Disconnect(); Client->Connect(true, 2000); } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientConnected(TObject *Sender) { BtnConnect->Enabled = false; BtnDisconnect->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::BtnDisconnectClick(TObject *Sender) { Client->Disconnect(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ClientDisconnected(TObject *Sender) { BtnDisconnect->Enabled = false; BtnConnect->Enabled = true; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { if(Client->Connected()) Client->Disconnect(); } //---------------------------------------------------------------------------
-
Weil v-o-r-r-a-u-s kein korrektes Deutsch ist.Es heisst voraus.
-
Da hat lole recht, auch wenn es komisch ist, dass es dann zensiert wird...
Nun zum Problem:
Du musst dem Server die Befehler sozusagen beibringen.Dann funktioniert das auch

Chines
-
Und wie gehts das bitte?
-
Hat das noch nie jemand gemacht?
Muss ich einfach in die Events des Servers was reinschreiben oder wo soll ich die Aktionen, die er tun muss eintragen.
Danke, Abel
-
Hallo
Vermutlich gibt es für den Server einen Event wenn Daten empfangen werden. Diese kannst du dann weiterverarbeiten wie du willst, zum Beispiel in dem du die in eine Datei schreibst. Natürlich must du die Zieldatei auf dem Server von Connect bis Disconnect an offen lassen, also solltest du dir schon mal ein vernünftiges Session-Design überlegen damit dir mehrere gleichzeitige Clientzugriffe nicht deine Datei zerschießen.
Allerdings kommt es mir vor als wäre so ein Serverprojekt selbst mit Hilfe der Indy-Komponenten doch noch zu viel für dich. Vielleicht solltest du erstmal einfachere Sachen machen? (Achtung das ist nicht überheblich gemeint, sondern ein ernsthafter Hinweis)
bis bald
akari
-
Also erstmal danke für die Antwort!
Mein Problem ist, dass er ja schon nach dem Connecten die Fehlermeldung bringt.
Ich mach jetzt erstmal die Events und dann schau ich mal. Vielleicht ist es doch wirklich nicht soo einfach, wie ich dachte.
Aber ich habe schon andere solche Projekte gemacht. Mit ein bisschen Hilfe und Google klappt dann doch alles.
Abel