Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi NetworkTrafficMonitor BUG (https://www.delphipraxis.net/137331-networktrafficmonitor-bug.html)

S4SH1981 18. Jul 2009 23:22


NetworkTrafficMonitor BUG
 
Hallo zusammen,

will hier einen Bug im Network Traffic Monitor bekannt geben.
Ich habe das Teil jetzt mal nen ganzen Tag getestet und musste festellen,
dass nach 1000 MB der Zähler beim Download aufhört zu zählen und verschwindet.

will jetzt nicht noch eine datei im intranet hochladen um zu testen ob da auch das Problem auftritt.
denke aber schon.

Soweit meine Info zu beschriebenen Problem.

Wer dafür eine Lösung hat kann sie gerne posten ;-)

Gruß S4SH

himitsu 19. Jul 2009 03:05

Re: NetworkTrafficMonitor BUG
 
Liste der Anhänge anzeigen (Anzahl: 2)
NetworkTrafficMonitor?

wer wie was wo ... ?


In der DP kann ich keinen Hier im Forum suchenNetworkTrafficMonitor finden
und Google findet mir zuviele Bei Google suchenNetworkTrafficMonitor's.

Aber falls du den da meinst http://delphi.about.com/od/fullcodep.../aa112903a.htm
der Quellcode ist ja vorhanden und man könnte auch selber mal nachsehn .... allerdings find ich den Wert von 1000 eigenartig ... wenn dann würde ich eher mir Werten wie 2 GB bzw. 4 GB rechnen > Integerüberlauf

[add]
Problem gefunden ... war gleich eine der ersten Funktionen, welche man in TrafficUnit.pas
sieht :mrgreen:
Delphi-Quellcode:
function BytesToFriendlyString(Value : DWord) : string;
const
  OneKB = 1000;
  OneMB = OneKB * 1000;
  OneGB = OneMB * 1000;
begin
  if Value < OneKB then
    Result := FormatFloat('#,##0.00 bps',Value)
  else
    if Value < OneMB then
      Result := FormatFloat('#,##0.00 Kbps', Value / OneKB)
    else
      if Value < OneGB then
        Result := FormatFloat('#,##0.00 Mbps', Value / OneMB)
end; (*BytesToFriendlyString*)
selbes in der Funktion BitsToFriendlyString

Wenn man da einfach das if Value < OneGB then entfernt und nur ein ELSE rum letzen "String" zurückläßt, dann würde es wieder gehen ... allerdings gibt es dann immernoch, dank DWord, nach 4 GB einen überlauf und man sollte das ganze Programm besser von DWord auf Int64 umstellen.

[add2]
Im Anhang die komplette Unit, mit geänderten IF-Abfragen und auf Int64 umgestellt.
Ich hoff mal die paar Änderungen reichen aus (einfach nach {himitsu} suchen).
Das ganze Programm müßte nun nur noch neu kompiliert werden,
nur bloß nicht mit D2009, dann da läuft es nicht (da z.B. Get_IfTableMIB nur Schrott liefert)

[add3]
so, ist wirklich nicht unicodetauglich, der Code ... in D2006 ging es

hab aber noch derartig grausame DIV-0-Behandlungen ersetzt
Delphi-Quellcode:
try
  self.FAverageInPerSec := InTotal div ActiveCountIn
except
  self.FAverageInPerSec := 0
end;

S4SH1981 19. Jul 2009 11:15

Re: NetworkTrafficMonitor BUG
 
Super Arbeit,

wollte eigentlich nur den "BUG" anmerken.
Dass da gleich das komplette Programm überarbeitet wird, hatte ich nicht erwartet.

Aber danke, auch im Namen aller anderen, die so ein Programm suchen und in Verwendung haben.

borstenei 15. Dez 2011 00:28

AW: NetworkTrafficMonitor BUG
 
Himitsu ist echt nicht mit Geld zu bezahlen!

Jetzt noch in der IPHelper.pas PBuf von PChar nach PAnsiChar
und in IPHlPapi.pas bDescr von Char nach Byte.

Jetzt kann man es wieder ohne Fehler mit Delphi 2010 compilieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz