Einzelnen Beitrag anzeigen

Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#1

GetSessionTraffic liefert ungenaue Werte?

  Alt 12. Okt 2003, 23:57
Ich verwende folgende function, die Luckie in seinem InternetMonitor verwendet:

Delphi-Quellcode:
 

function Tform1.GetSessionTraffic(Way : string) : real;
var
  IfTable: PMIB_IFTABLE;
  dwSize: Cardinal;
  i: Integer;
begin
  result := 0;
  IfTable := nil;
  dwSize := 0;
  ZeroMemory(@IfTable, sizeof(IfTable));
  try
    VVGetIfTable(IfTable, dwSize, TRUE);
    if IfTable <> nil then
    begin
      for i := 0 to IfTable.dwNumEntries - 1 do
      begin
        if IfTable.table[i].dwType <> MIB_IF_TYPE_LOOPBACK then
          if Way = 'Inthen result := IfTable.table[i].dwInOctets / 1024 / 1024
                        else result := IfTable.table[i].dwOutOctets / 1024 / 1024;
      end;
    end;
  finally
    Freemem(IfTable);
  end;
end;
Aber ich habe ein problem mit ihr!

Die Werte, die von dieser Function rausgegeben werden unterscheiden sich MAßGEBLICH von den bytes, die in der DFÜ-Anzeige angezeigt werden!

ein timer aktualisiert alle 1 sek ein label mit dem Up und Down; nach 10 sekunden hat man schon einen unterschied von ~200 KB!

ich hab gerade nach 1 stunde bei der dfü 20 MB und bei meinem prog 17,5 MB Download zu stehen...

hat jemand eine ahnung, wie das zustande kommt? (ich teile die bytezahl auch brav 2 mal durch 1024, nicht durch 1000 );


MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat