Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#32

Re: Beispiel zum Versenden von Dateien mit Indy

  Alt 6. Jan 2004, 17:59
Bindings mit 0.0.0.0 sollten eigentlich auch funktionieren, beim mir geht das.

Nun, wie geht es weiter ? Ehrlich gesagt ich weiß es nicht da es ja DEIN Projekt ist D.h. es hängt von dir ab wie es weitergeht, den Kern habe ich dir ja gezeit, und so schwierig war's ja dann doch nicht.
Möchtest du zB. im Server ebenfalls eine Progressbar (was ich nicht empfehle) musst du bedenken das ein Server sehr viele Clients zur gleichen Zeit in verschiedenen Threads bedienen wird. D.h. eigentlich müsste für jeden Aufruf des OnExecute() Ereignisses eine eigene ProgressBar her. Beachte, .OnExecute() wird bei INDY in einem eigenen Thread aufgerufen. D.h. für jeden Client der mit dem Server verbindet spaltet TidTCPServer einen eigenes Thread Object ab. Diese ruft dann in SEINEM TThread.Execute; eben das Event TidTCPServer.OnExecute() auf.

Du kannst die Funkionalität erweitern um die Fähigkeit eines Downloads eienr Datei auf Clientseite. Dazu muß der Client erstmal wissen was er downloaden kann. D.h. eine neues Kommando muß her das ein Listing der Dateien abfragt. Dann ein Kommando zum Download einer Datei.

Schwieriger wird es dann aber schon einen interupted/delayed/multiple Download/Upload zu programmieren. In diesem Falle MUSS der Datenbereich der Dateiübertragung Häppchenweise erfolgen. Denn nur so kann der Client/Server mitbekommen wieviele Daten schon übertragen wurde. Man könnte aber auch bei meinem ursprünglichen Konzept bleiben. Dann müsste sich der Client aber erneut nach einem Abbruch ver Verbindung beim Server einloggen. Danach fragt er den Dateistatus der abgerbochenen Datei ab, und überträgt nur den Rest.

Gruß Hagen
  Mit Zitat antworten Zitat