AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Netzwerkauslastung / Traffic
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerkauslastung / Traffic

Ein Thema von Billi Berserker · begonnen am 15. Apr 2003 · letzter Beitrag vom 5. Jan 2009
Antwort Antwort
Seite 2 von 3     12 3      
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#11

Re: Netzwerkauslastung / Traffic

  Alt 1. Jun 2004, 07:46
ja, der wert ist ja cardinal, also wird er automatisch auf 0 gesetzt, wenn man die maximale größe überspringt.
habs jetzt mit dem delta gemacht, funktioniert auch gut, aber perfekt ist es eben nicht.
ist halt typisch microsoft. alles so klein wie möglich halten (HD<128GB, ...)

gruss,
iaby
  Mit Zitat antworten Zitat
Benutzerbild von Calimero
Calimero

Registriert seit: 8. Mär 2003
Ort: Krefeld
69 Beiträge
 
Delphi 6 Personal
 
#12

Re: Netzwerkauslastung / Traffic

  Alt 3. Jul 2004, 15:05
Da sehr viele sich intressieren dafür wie man die Geschwindigkeit ermittelt hier

Das Beispiel zeigt den aktuellen Speed der ersten Netzwerkkarte (incoming Traffic) an (in kb/s)

Den Speed des Timers auf 1000 (1 sekunde)

Code:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Winsock,
  IpExport,
  IpHlpApi,
  IpTypes,
  IpIfConst,
  IpRtrMib, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);


  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  old: integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var MibRow: TMibIfRow;
IntfTable: PMibIfTable;
Size: DWORD;
I: Integer;
wert:integer;
begin
Size := 0;
if GetIfTable(nil, Size, True) <> ERROR_INSUFFICIENT_BUFFER then Exit;
  IntfTable := AllocMem(Size);
  try
    if GetIfTable(IntfTable, Size, True) = NO_ERROR then
    begin
      for I := 0 to IntfTable^.dwNumEntries - 1 do
      begin
     {$R-}MibRow := IntfTable.Table[I];{$R+}
        if MibRow.dwType <> MIB_IF_TYPE_ETHERNET then Continue; // oder MIB_IF_TYPE_PPP
       if i = 1 then begin // Welche Verbindung
       wert := MibRow.dwInOctets - old;


                      label1.caption := floattostr(round(Wert /1024 *100)/100) + ' KB/s';
                     old := MibRow.dwInOctets

                     end;
  end;
    end;


    finally
    FreeMem(IntfTable);
  end;

end;


end.
***** I like Delphi & Rapidq and C *****
  Mit Zitat antworten Zitat
Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#13

Re: Netzwerkauslastung / Traffic

  Alt 7. Jul 2004, 21:08
Kann man wohl auch irgendwie herausfinden, welche Anwendung oder welche Adresse/Port sich hinter den in/out-Daten verbirgt?
Christian Rüsken
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#14

Re: Netzwerkauslastung / Traffic

  Alt 7. Jul 2004, 22:04
Neue Frage, neuer Thread...
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Bowler
Bowler

Registriert seit: 8. Sep 2003
Ort: Bochum
148 Beiträge
 
Delphi XE7 Enterprise
 
#15

Re: Netzwerkauslastung / Traffic

  Alt 7. Jul 2004, 22:11
Okidokey, schon geschehen.

http://www.delphipraxis.net/internal...ct.php?t=29398
Christian Rüsken
  Mit Zitat antworten Zitat
vollmer-net
(Gast)

n/a Beiträge
 
#16

Re: Netzwerkauslastung / Traffic

  Alt 18. Dez 2004, 14:32
wo ist der anhang von Luckie hin? ich wollte mir die units gerne mal ansehen von Marcel van Brakel!
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#17

Re: Netzwerkauslastung / Traffic

  Alt 18. Dez 2004, 14:35
Anhänge wurden vorläufig gesperrt, werden aber wieder freigeschaltet.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#18

Re: Netzwerkauslastung / Traffic

  Alt 18. Dez 2004, 16:01
stichwort

IPHLPAPI.pas
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#19

Re: Netzwerkauslastung / Traffic

  Alt 27. Sep 2006, 19:38
Ich habe mal eine Frage... Auch wenns schon 2 Jahre her ist:
Ich bekomme so komische Werte (10 Stellen?) und teilweise Negativ (o.o)... Ich habe es mit Luckies Programmcode und den Dateien von Luckies anhang probiert (is übrigends bei Calimeros Code genauso)!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Dirkmswt

Registriert seit: 27. Sep 2006
Ort: Heppenheim
64 Beiträge
 
#20

Re: Netzwerkauslastung / Traffic

  Alt 6. Okt 2006, 12:57
Und promt einen Fehler gefunden sobald der Rechner ein kleines Treiberproblem hat und die Lösung!

Ich hatte als mein Rechner ein paar Tage durchgelaufen war einen Fehler der Marke ErangeError,hat vielleicht noch keiner von euch gemerkt weils noch nicht gepostet wurde?
Das Problem war das die Software dann andauernd eine Messagebox mit eben diesem Fehler gebracht hat.
Poste den Quellcode nochmals von mir überarbeitet.


Delphi-Quellcode:
var MibRow: TMibIfRow;
IntfTable: PMibIfTable;
Size: DWORD;
I: Integer;
wert:integer;
begin
try
Size := 0;
if GetIfTable(nil, Size, True) <> ERROR_INSUFFICIENT_BUFFER then Exit;
  IntfTable := AllocMem(Size);
  try
    if GetIfTable(IntfTable, Size, True) = NO_ERROR then
    begin
      for I := 0 to IntfTable^.dwNumEntries - 1 do
      begin
     {$R-}MibRow := IntfTable.Table[I];{$R+}
        if MibRow.dwType <> MIB_IF_TYPE_ETHERNET then Continue; // oder MIB_IF_TYPE_PPP
       if i = 1 then begin // Welche Verbindung
       wert := MibRow.dwInOctets - old;
label1.caption := floattostr(round(Wert /1024 *100)/100) + ' KB/s';
old := MibRow.dwInOctets ;

end;
  end;
  end;
  except
  on erangeerror do
  begin
  timer1.Enabled:=false;
  showmessage('Ein Treiberproblem ist aufgetreten!Starten Sie den Computer neu.');
  end;
    end;

    finally
    FreeMem(IntfTable);
  end;
[edit=Admin]Code in Delphi-Tags gesetzt. Mfg, Daniel[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:58 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