Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: IdFTP -> Downloadgeschwindigkeit begrenzen (Indy 10)

  Alt 23. Feb 2007, 16:56
du leitest einfach von deiner Streamklasse ab und überschreibst die Funktion "Write", in der Funktion lässt du eine schleife laufen die solange läuft bis das schreiben wieder erlaubt ist. Wann das schreiben erlaubt ist musst du aus den Datenmengen errechen. Wenn du also 3kb pro Sekunden zulässt und deiner Funktion 6kb übergeben werden darfst du erst nach 2 Sekunden wieder neue Daten zulassen bzw. die Funktion 1 Sekunde blockieren.
Delphi-Quellcode:
procedure TYourStream.Write(const Buffer; Count: Longint): Longint;
begin
  while not(NeueDatenErlaubt()) do
  begin
    //Das Sleep ist geschmackssache
    sleep(10);
  end;
  inherited;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat