Übertragungsrate ermitteln



  • Hi,

    in meinen Programm lade ich eine Datei von einem Server runter.

    Ich würde gern dem User den momentanen Download Speed anzeigen (bsp. ISDN 7,1 ; TDSL 92.6)

    Kann man das auch irgendwie mit den Indy Komponenten realisieren? Wenn nicht wie kann man das dann machen?

    grüße
    Sven



  • Sieh dir in der FAQ mal das Beispiel für eine Download-Fortschrittsanzeige an.
    Es sollte ein leichtes sein, z.B. mittels Timer über AWorkCount die jeweils in der letzten Sekunde empfangene Datenmenge zu ermitteln.



  • Hallo,

    man braucht keinen Timer. Ist unnötig und überflüssig. Das Ereignis OnWork wird sowieso von der TIdHTTP Klasse während des Downloads permanent aufgerufen mit den aktuell heruntergeladenen bytes.

    Man braucht die Ereignisse OnWorkBegin, OnWork und WorkEnd wäre auch nicht schlecht. Und die Parameter, die man da bekommt beachten. Wenn man dann noch GetTickCount geschickt einsetzt, hat man's.

    MfG
    tuküe



  • GetTickCount u.ä. ist ja schön und gut, aber was, wenn der Download mal hängt und dementsprechend kein OnWork ausgelöst wird? Soll der User da raten, was los ist?
    Oder soll er sich über die scheinbar konstant hohe Übertragungsrate freuen, die beim letzten Mal berechnet wurde, obwohl in Wirklichkeit wegen eines Netzausfalles schon seit 10 Minuten nichts mehr empfangen wurde?

    Oder wäre es nicht doch besser, per Timer regelmässig den aktuellen Wert zu berechnen und anzuzeigen, ggf. also auch Null? 😉


Anmelden zum Antworten