Upload / Download Geschwindigkeit berechnen

  • Allgemein

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Upload / Download Geschwindigkeit berechnen

    Hallo liebe Community!


    Ich stehe nun vor einer (denke ich) größeren Frage:

    Wie ist es mit vb.net möglich den Upload / Download - Speed zu berechnen?

    Grundsätzlich bräuchte ich Ansätze, denn ich habe keine Ahnung wie ich das ganze angehen soll.



    Bitte um Hilfe,
    Danke im Vorraus.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()

    Mit nen WebClient habe ich das so gemacht:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Withevents wc as new Webclient
    3. Dim sw As New Stopwatch
    4. Dim zm As Integer = 0
    5. Private Sub wc_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
    6. Dim speed as String
    7. sw.Stop()
    8. speed = CStr(Math.Round((e.BytesReceived - zm) / 1024 / (sw.ElapsedMilliseconds / 1000)))
    9. zm = CInt(e.BytesReceived)
    10. sw.Stop()
    11. sw.Reset()
    12. sw.Start()
    13. End Sub



    Ausgeben kannst du es in Label, Textbox oder wie du willst!
    Danke erstmal jedoch, download-speed geht sowieso "einfacher"
    Ich hänge eher an der Upload-Geschwindigkeit. Hier bräuchte ich unbedingt Hilfe!
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    VB.NET-Quellcode

    1. Private Sub wc_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) _
    2. Handles wc.UploadProgressChanged
    3. stopuhr.Stop()
    4. speed = CStr(Math.Round((e.BytesSent - temp) / 1024 / (stopuhr.ElapsedMilliseconds / 1000)) & " KB/s") 'Geschwindigkeit
    5. temp = e.BytesSent
    6. stopuhr.Restart()
    7. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Rinecamo“ ()

    Sorry,
    aber wie genau ruf ich das jetzt auf Rinecamo?


    bzw. Die selbe Frage stellt dich auch bei Ninja, ich arbeite normaler weise nicht oft mit WebClients.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gather“ ()

    Wäre relativ wichtig. Deswegen nochmal:

    Wie kann ich :

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Withevents wc as new Webclient
    3. Dim sw As New Stopwatch
    4. Dim zm As Integer = 0
    5. Private Sub wc_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
    6. Dim speed as String
    7. sw.Stop()
    8. speed = CStr(Math.Round((e.BytesReceived - zm) / 1024 / (sw.ElapsedMilliseconds / 1000)))
    9. zm = CInt(e.BytesReceived)
    10. sw.Stop()
    11. sw.Reset()
    12. sw.Start()
    13. End Sub


    bzw.

    VB.NET-Quellcode

    1. Private Sub wc_UploadProgressChanged(ByVal sender As Object, ByVal e As System.Net.UploadProgressChangedEventArgs) _
    2. Handles wc.UploadProgressChanged
    3. stopuhr.Stop()
    4. speed = CStr(Math.Round((e.BytesSent - temp) / 1024 / (stopuhr.ElapsedMilliseconds / 1000)) & " KB/s") 'Geschwindigkeit
    5. temp = e.BytesSent
    6. stopuhr.Restart()
    7. End Sub


    aufrufen?`bzw. auslesen?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    habs mir zwar angeschaut,
    weiß aber nicht wie ihr das meint.

    Muss ich für den Downloadspeed einen neuen download starten (DownloadDataAsync)?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Wo Prob?

    VB.NET-Quellcode

    1. Private WithEvents wc As New Net.WebClient With {.Proxy = Nothing}
    2. Private downloading As Boolean = False
    3. Private tmpfile As String = My.Computer.FileSystem.GetTempFileName
    4. Private stp As Stopwatch
    5. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    6. If Not downloading Then
    7. downloading = True
    8. stp = Stopwatch.StartNew
    9. wc.DownloadFileAsync(New Uri("http://download.thinkbroadband.com/100MB.zip"), tmpfile)
    10. End If
    11. End Sub
    12. Private Sub wc_DownloadFileCompleted(sender As Object, e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc.DownloadFileCompleted
    13. downloading = False
    14. My.Computer.FileSystem.DeleteFile(tmpfile)
    15. End Sub
    16. Private Sub wc_DownloadProgressChanged(sender As Object, e As Net.DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
    17. Dim speed = e.BytesReceived \ (stp.ElapsedMilliseconds + 1) ' Byte/Millisekunde
    18. speed = speed * 1000 ' byte/Sekunde
    19. speed = speed >> 10 ' kbyte / sekunde
    20. Label1.Invoke(Sub() Label1.Text = speed.ToString)
    21. End Sub
    w00t?

    Ich wollte eigentlich nur eine erklärung, wie ich das ganze angehen soll.

    @Erfinder
    du tust so, als würde ich nur nach Code geiern, ich bin nicht wie ChipPro Österreich.
    :P

    Ich frage um zu lernen. Und naja dein Link war zwar umfangreich nur vielleicht stelle ich mich jetzt dumm ich habe dort nichts über den WebClient gefunden.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    <-- Failed.


    Egal, Zurück zum Thema. Grundsätzlich ist das schön was mir pico jetzt gegeben hat, JEDOCH suche ich soetwas nicht.
    Ich habe mich anscheinend falsch ausgedrückt ich suche sowas wie es Speedtest.net benutzt.
    Ich will also die Bandbreite ermitteln.

    und nicht wie schnell gereade gedownloadet wird.
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    Aber hast du dir den vorher genannten Code genau angesehen? Dann wäre dir vermutlich aufgefallen, dass die Sub Routinen ein Handler haben und das heißt immer DU musst sie gar nicht aufrufen, sondern sie werden von der Objekt Instanz aufgerufen sog Events.
    Das sollte man btw. aber auch wissen was Handles sind und wie diese ausgelöst werden.

    Edit: Speedtest.net macht genau das was hier beschrieben wird? Es berechnet den Download/Upload-Stream, also wie schnell kannst du was runter und rauf laden O.o

    Gather schrieb:

    @Erfinder
    du tust so, als würde ich nur nach Code geiern, ich bin nicht wie ChipPro Österreich.
    Ich frage um zu lernen. Und naja dein Link war zwar umfangreich nur vielleicht stelle ich mich jetzt dumm ich habe dort nichts über den WebClient gefunden.
    Jo, der Link ist nicht übern WebClient, sondern v.a. über Objectbrowser und MSDN.

    Imo sollteman im Hauptforum vorraussetzen dürfen, dass der ObjectBrowser/ObjektKatalog bekannt ist.
    Andernfalls hast du da einen extremen Nachholbedarf.

    Wäre der OB bekannt, so hätte post#3 reichlich ausgereicht - die Frage, wie einen asyncDownload starten hättest du dir selbst beantworten können.

    Gather schrieb:

    habs mir zwar angeschaut,
    weiß aber nicht wie ihr das meint.
    Wenn du dir im OB die WebClient-Klasse angeschaut hättest - ja dann... - na eiglich kann man dann nix mehr helfen, wenn immer noch unklar ist, was wir meinen.

    Also ObjectBrowser/ObjektKatalog ist wirklich ein wichtiges Instrument: wichtiger als MSDN, ja selbst als google (was eiglich garkein Programmierwerkzeug ist)