Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdTcpClient von Indy 9: onWork-Ereignisse ??? (https://www.delphipraxis.net/6408-tidtcpclient-von-indy-9-onwork-ereignisse.html)

master_mu 9. Jul 2003 21:40


TIdTcpClient von Indy 9: onWork-Ereignisse ???
 
Hallo,
ich habe ein Programm geschrieben, dass Dateien übers Netz versendet und empfängt. Dazu verwende ich TIdTcpServer und TIdTcpClient von den Indy 9 Komponenten. Das Programm fungiert sowohl als Client als auch als Server. Ich möchte jetzt zusätzlich eine Status-Anzeige in das Programm einbauen, um den Downloadfortschritt anzuzeigen. Dazu benutz ich das onWorkBegin und onWork - Ereignis der Client-Komponente. Leider wird die aus irgendwelchen Gründen nicht ausgeführt. Vielleicht könnt ihr mir helfen. Beim anfordern einer Datei mache ich folgendes im onCommand-Event des Server-Command-Handlers:
Delphi-Quellcode:
procedure TForm1.onCommand(ASender: TIdCommand);
var
 fileid : TFileStream;
begin
 fileid := TFileStream.create(asender.params.strings[0], fmOpenRead);
 with asender.thread.connection do
  begin
   openwritebuffer;
   writestream(fileid);
   closewritebuffer;
   disconnect;
  end;
 freeandnil(fileid);
end;
Im onConnect-Event des Clients mache ich folgendes:
Delphi-Quellcode:
procedure TForm1.onConnect(Sender : TObject);
var
 fileid : TFileStream;
begin
 fileid := TFileStream.create('C:\irgendwas.dat', fmCreate);
 with TIdTcpClient(Sender) do
  begin
   sendCmd('getFile|d:\irgendwo.dat')
   while connected do
    readstream(fileid, -1, true);
  end;
 freeandnil(fileid);
end;
Die Übertragung funzt wunderbar und die Datei kommt komplett an. Nur leider wird onWork und onWorkBegin nicht ausgelöst. Woran könnte das liegen? Könnte es deswegen sein, weil ich bisher nur über das loopback-device localhost getestet habe und somit gar keine richtige TCP-Verbindung aufgebaut wird? Kann das im Moment leider nicht in einem richtigen Netz testen, wäre für antworten aber dankbar. Denn ich kann mir nicht vorstellen, dass es wirklich an localhost liegt, oder weil server und client in einem programm laufen.

Dank schon mal im Voraus
MU

master_mu 10. Jul 2003 22:21

Re: TIdTcpClient von Indy 9: onWork-Ereignisse ???
 
Hey,
O.K. war mein eigener blöder Fehler. Ich wollte den Fortschritt in einer Progressbar sichtbar machen, von der man nur die Ränder, nicht aber den Fortschritt selbst gesehen hat. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Als denn
MU


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 Uhr.

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