Downloadgeschwindigkeit ermitteln



  • Hi,
    Hab inzwischen schon fast überall gesucht und keine lösung gefunden für mein Problem.

    Ich möchte eine datei herunterladen, und eine geschwindigkeit anzeige dazu haben.
    Runterladen und alles is kein Problem, ich hab den vorgang auch schon mit einer Progressbar visualisiert.
    Aber ich hätte eben gerne noch die downloadgeschindigkeit.

    Am liebsten würde ich die geschwindikeit als kb/s angeben, also müsste ich schnonmal einen timer einbauen, der nach jeder sek den neuen speed angibt.

    die files lade ich folgendermaßen (im thread):

    while(ServerFileSize > nLokalFileSize)
    			{			
    
    					pNetFile->Read(cReadBuffer, 512);
    					FileLokal.Write(cReadBuffer, 512);	
    					nLokalFileSize =  nLokalFileSize + 512;	
    					pDlg->m_Progress1.SetPos(nLokalFileSize);
    
    			}
    

    So, jetzt kommt aber noch eine schwierigkeit hinzu. Ich habe mehrere Threads, die gleichzeitig laden, also müsste ich von jedem den downloadspeed bestimmen.

    Bin für jede Hilfe dankbar.
    Mfg
    Prase



  • bei codeguru hab ich auch nichts passendes gefunden.
    das kann doch nicht soooo schwer sein.....



  • DU solltest mal bei den Grundlagen beginnen.
    Woher weißt du das Read auch 512 Bytes ließt?
    Woher weißt du das Write auch 512 Bytes schreibt?
    Was ließt und schreibst du da überhaupt?
    Woher willst du die ServerFileSize wissen?

    Abgesehen davon kannst du dir ja ausrechnen wie schnell das geht wenn du die ServerFilesize hast.



  • serverfilesize bestimme ich vorher
    DWORD serverfilesize = GetFileSize (pNetFile, NULL);

    außerdem, wie soll ich es ausrechnen können?
    Der server bringt ja beim download nicht immer fullspeed, also kann ich es nicht anhand meiner Connection ausrechnen.

    Naja, ich hab es folgendermaßen gelöst (nicht sehr elegant, aber funzt):

    Timer pro sekunde
    .....
    int ispeed = (nLokalFileSize /10000) * m_iThreads; // ich gehe davon aus, dass alle threads in ca. gleichschnell sind (natürlich ist das ein bissel optimistisch gedacht)



  • Wenn du meine Fragen beantwortest dann weiß du auch mit deinem Problem umzugehen.


Anmelden zum Antworten