Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Downloadgeschwindigkeit drosseln / beschränken

  Alt 28. Mai 2009, 16:25
So würde ich es machen (Pseudocode, ka ob es funktioniert):

Delphi-Quellcode:
function WriteHTTP(DataStream, HTTPOut: TStream; MaxDataRate: cardinal);
var
  StartTime, ResumeTime: cardinal;
  Buffer: packed array[0..64] of byte;
begin
  ResumeTime := 0;
  while DataStream.Read(@Buffer[0], length(Buffer)) > 0
  begin
    while GetTime() < ResumeTime do sleep(1);

    StartTime := GetTime();
    HTTPOut.Write(@Buffer[0], Length(Buffer));
    ResumeTime := StartTime + 1000 / (DataRate / MaxDataRate);
  end;
end;
So ähnlich habe ich zumindest die FPS-Beschränkung in einem Spiel implementiert, was sehr gut funktionierte.
  Mit Zitat antworten Zitat