EDIT: FTP Ok Exception
-
FTP Server
FTP Clientaber schon beim Connect haperts. Er kriegt zwar den Connect, (OnConnectEvent) wird ausgelöst, aber er scheint mich sofort wieder zu kicken.
(try-catch gibt Fehler beim Connect)Was muss ich beim Server und Client einstellen, damit der Client nicht als Fremd gesehen wird und blockiert wird ?
Merry Christmas :xmas1:
-
Tim06TR schrieb:
(try-catch gibt Fehler beim Connect)
Die Fehlermeldung(en) solltest du dir mal durchlesen und versuchen, zu verstehen, das bringt dich u.U. schon auf die richtige Spur.
-
DELETED
Server: (EDIT: hießen gleich geändert)
void __fastcall TFTP_Server::FTPSStoreFile(TIdFTPServerContext *ASender, const UnicodeString AFileName, bool AAppend, TStream *&VStream) { FTPS->FTPFileSystem->StoreFile(ASender,AFileName,true,VStream); } //---------------------------------------------------------------------------
Client:
Tftp->Host = IP->Text; Tftp->Port = StrToInt(Port->Text); Boolean STOP = false; Tftp->TransferType=ftBinary; Tftp->Connect(); if (!STOP) { try { Tftp->Put("C:\\asdf.txt","Input.txt"); // logischerweise siehe hier } catch(...) { ShowMessage("Can't upload Critical Error"); } Tftp->Disconnect(); }
Jetzt kommt einfach eine "Ok Exception" und das wars.
-
Der Connect-Versuch sollte wohl auch mit in das try/catch, und vor den FTP-Transaktionen erstmal abfragen, ob Connected!?
-
dann eben so:
Tftp->Host = IP->Text; Tftp->Port = StrToInt(Port->Text); Boolean STOP = false; Tftp->TransferType=ftBinary; try { Tftp->Connect(); } catch(...) { ShowMessage("Problem mit Verbindung"); STOP = true; } if (!STOP) { try { Tftp->Put("C:\\asdf.txt","C:\\Dokumente und Einstellungen\\Tim\\Eigene Dateien\\RAD Studio\\Projekte\\FTP\\Debug\\Hello.txt"); } catch(...) { ShowMessage("Can't upload Critical Error"); } Tftp->Disconnect(); }
Hilft aber dem Prob nicht weiter
-
Welches Problem denn nun genau?
Ist der Connect überhaupt erfolgreich?if (Tftp->Conncted) { ... Tftp->Put(...; ... }
-
Also er connected !
Dann gibt er mir eine "Ok Exception"
und dann friert er ein, dass kenn ich sonst nur wenn er eine Antwort will, aber keine kriegt.
Dann nach längerer Zeit das "Read Timeout".
Dann meine Nachricht "Can't upload... bla bla".- Wie muss der Server auf das Put reagieren ?
- hab bisher nur das OnStoreFile Event bei meinem Server und beim Client keins.
-
Könnte es sein, dass Du bei TIdFTP::Put Source und Destination verdreht hast?!
Siehe Hilfe// Edit
Der Quellcode ist korrekt, habe es grad kurz an meinem FTP-Server getestet, da hat es funktioniert.
Hast Du die nötigen Rechte zum Schreiben? PassiveMode korrekt gesetzt?
-
1. Warum hat mir nie jemand den link zur hilfe gesendet ?
Wäre nett gewesen
2. Hmm ich seh mal nach gleich.
-
Hallo
Das ist die offizielle Dokumentation zum Indy-Paket. Es wäre eigentlich deine Sache, von selbst diese zu suchen (-> Google) und dort deine Fragen nachzuschlagen.
bis bald
akari
-
Du bist ne Pfeife;
Vor einer knappen Woche habe ich das schonmal verlinkt. Vielleicht mal besser durcharbeiten
-
meinst du diesen Beitrag ?:
Schau mal auf indyproject.com
Hier ist die Dokumentation (Ist zwar für V10, die auf dem Builder nicht läuft, aber trotzdem sehr hilfreich)
Hier die besagten Demos//Edit
Hier noch die IndyVersionen zum Download (wie bereits geschrieben, für den BCB nicht die neuste 10er Versionen nutzen!)_________________
Habe starke Meinungen. Lautstarkes Geschwätz, Anderen ungefragt ins Gesicht geblasen, gibt Dir Recht.Supi, von den links geht keiner direkt zur Hilfe, ich war schon 10 mal auf der Seite und die Hilfe hab ich nie gefunden (gesucht aber nicht geahnt sie dort zu finden)
.
Bevor das ausartet btt:
- Hab jetzt irgwas verändert und sagt nun not logged in@(Rostfrei[] || Anybodyelse())
kann jemand ein Beispiel uploaden, an den ich die Parameter mir mal ansehen kannEDIT: Könnte auch sein, dass ich vorher Anonymus erlaubt hab
Wiederum finde ich am Server nix um das PW einzustellen.
-
Wieso ein Upload? Dein gezeigter Code ist wie bereits gesagt korrekt. Prüfe die gesetzten Eigenschaften Von TIdFTP und die Einstellungen Deines FTP-Servers.
Was hast Du eigentlich fürn Server? Was öffentliches? Localhost via Indy, FileZilla, ...?
-
Ach das hab ich völlig vergessen zu sagen ? (****)
Ich nehme IndyFtp Server bzw. Client. (9ner Reihe)Ich hätte gern das Beispiel, für die Einstellungen am Server, weil ich nicht weiß wie ich sie aufeinander abstimmen soll.
-
Anonyme Accounts haben keine Rechte, hab jetzt geschnallt ein TidUserManager einzubauen, der Passwort und Namen prüft. Jetzt sollte es eigentlich gehen, wenn nicht melde ich mich später.
-
Soo ich habs zu einer Zugriffsverletzung geschafft (Juhu ?).
Client:void __fastcall TFTP_Client::Button1Click(TObject *Sender) { Tftp->Password = "KeepBlue"; Tftp->Username = "BBC"; Tftp->Host = IP->Text; Tftp->Port = StrToInt(Port->Text); Tftp->TransferType=ftBinary; try { Tftp->Connect(); } catch (...) { ShowMessage("Connect refused / failed"); } if (Tftp->Connected()) { // Tftp->Put("INPUT","OUTPUT"); String File = ModuleInformation("Appi",1).c_str(); //liefert Anwendugspfad + "\\" [stock] File += "IWillbecopyed.txt"; //liefert Programmnamen String Copy = ModuleInformation("Appi",1).c_str(); Copy += "COPY.exe"; Tftp->Put(File.c_str(),Copy.c_str()); Tftp->Disconnect(); } } //---------------------------------------------------------------------------
Server:
void __fastcall TFTP_Server::TftpStoreFile(TIdFTPServerContext *ASender, const UnicodeString AFileName, bool AAppend, TStream *&VStream) { To->Caption = AFileName; try { FTPS->FTPFileSystem->StoreFile(ASender,AFileName,true,VStream); } catch(...) { ShowMessage("unable to store file"); } } //---------------------------------------------------------------------------
wo wäre ein try catch denn ganz sinnvoll um diese aufzuspüren ?
EDIT: Ok es ist eindeutig der Server beim Store schuld, ich guck mir mal die Pfade an !
EDIT 2: Oh da fällt mir ein ich kann das prog nicht während es läuft kopieren oder ? Ich nehm ne andere File. // Doch natürlcih nur löschen verschieben geht nicht.
EDIT 3: unable to store file hmpf
EDIT 4: Die zweite Addresse ist durchgängig null, sollte mir das was sagen ?
EDIT 7: NONSENSE (5 + 6)
-
Tim06TR schrieb:
wo wäre ein try catch denn ganz sinnvoll um diese aufzuspüren ?
Debugger?