2017-07-14 1 views
-4

Ich habe ein Programm mit C# und Microsoft API geschrieben, die die Menge des Downloads zeigen, aber es sagt mir nicht die richtige Größe, die heruntergeladen wird, zum Beispiel: Wenn ich 10 MB herunterladen Datei, das Programm zeigt 11 MB heruntergeladen wird.
Ich habe auch im Netzwerkstatus Fenster eingecheckt immer noch sagen Sie mir, genau wie mein Programm.
Warum? Funktioniert andere Software in ISP genauso wie ich?Heruntergeladene Größe ist mehr als real

objIPInterfaceStatistics2 = objNetworkInterface[numberinterface].GetIPStatistics(); 
      long newBytesreceived; 
      newBytesreceived = objIPInterfaceStatistics2.BytesReceived; 
      if (checkdata == true) 
      { 
       checkdata = false; 
       newBytesreceived = 0; 
      } 
      long newUsage = newBytesreceived - oldBytesreceived2; 
      trafficusage += newUsage; 
      float converttrafficusage = trafficusage/1000000; 
      oldBytesreceived2 = objIPInterfaceStatistics2.BytesReceived; 
      worker.ReportProgress((int)Math.Ceiling(converttrafficusage)); 
      Thread.Sleep(1000); 
+0

Sind wir gemeint, nur vorstellen, was der Code, den Sie geschrieben haben, tut und wie/ob du hast etwas stimmt nicht? Bitte versuche, eine Art von [mcve] zu erstellen, wenn du Hilfe brauchst, um herauszufinden, was du falsch gemacht hast. –

+1

Sie müssen Netzwerk-Overhead berücksichtigen – ChrisBint

+0

Sind Sie sicher, dass sie das gleiche "Maßnahme" verwenden? Sie zeigen Ihnen wahrscheinlich die Größe auf MibiBytes nicht MegaBytes – arracso

Antwort

1

Ich kann nur davon ausgehen, dass die beiden Werte unterschiedlich berechnet werden. Im Allgemeinen bezieht sich 1 Megabyte auf 1.000.000 Bytes, während 1 Mebibyte sich auf 2^20 Bytes => 1.048.576 Bytes bezieht. Normalerweise wird Megabyte verwendet, da es einfacher zu berechnen ist.

Um sicher zu sein, einige Beispiel-Code von Ihnen, wo die heruntergeladenen packags berechnet werden würde gut sein ^^

Verwandte Themen