Autor |
Beitrag |
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 08.09.11 21:29
Moin und in der Entwickler-Ecke!
Shyran hat folgendes geschrieben : | (selber unter Delphi XE kompiliert) und beim simplen Ping auf "localhost" (Vista) bekomme ich
"localhost -> Systemfehler: WSANO_DATA" |
Die Unit stammte noch aus prä-unicode Zeiten und hatte deshalb ein Problem mit Hostnamen-Strings. Habe ich behoben, die aktuelle Version (wie immer im ersten Beitrag) hat jetzt keine Probleme mehr damit.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Shyran
Beiträge: 20
Rad Studio XE
|
Verfasst: Fr 09.09.11 06:56
Vielen Dank für's Willkommen und: Ich probiere das gleich mal aus und gebe Feedback - bis später!
--- Moderiert von Narses: Beiträge zusammengefasst---
Da isser wieder ...
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| i:= Ping.Execute('192.168.212.253', 500); case i of 0: Listbox2.Items.Add('192.168.212.253'); -1: ; -2: ; end; |
Obiger Code tut erstmal und wird nun von mir weiter verwurstet. Meinen Dank für die spontane Hilfe - und noch viel (!) größerer Dank für die eigentliche Arbeit am Wrapper, Narses *verbeug*. Bestimmt komme ich hier nochmal vorbei, sobald ich den asynchronen Ping mal probiere ... Ich ahne da Schwieirgkeiten in der Ausführung.
Grüße
--- Moderiert von Narses: Beiträge zusammengefasst---
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| for j:=2 to 254 do begin
i:= Ping.Execute('192.168.212.'+IntToStr(j), 500); case i of 0: Listbox2.Items.Add('192.168.212.'+IntToStr(j)); -1: ; -2: ; end; end; |
Frühstück vorbei, das läuft nun. Ich nehme an, es wäre an dieser Stelle deutlich sinnvoller, die andere Ping-Funktion (asynchrone) zu nutzen, der Aufruf und die Callback Funktion sind mir dabei aber noch unklar, das muss ich zunächst noch verstehen. Obiger Code-Schnippsel liefert mir unbefriedigende Ergebnisse. In meiner Listbox tauchen nur wenige Adressen auf, im eigenen Subnet aber sind deutlich mehr vertreten.
Ein kleiner Schubs in Richtung der Nutzung der ansynchronen Funktion wäre hilfreich für mich.
Danke!
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 09.09.11 11:00
Moin!
Shyran hat folgendes geschrieben : | Meinen Dank für die spontane Hilfe - und noch viel (!) größerer Dank für die eigentliche Arbeit am Wrapper, Narses *verbeug*. |
Shyran hat folgendes geschrieben : | Ich nehme an, es wäre an dieser Stelle deutlich sinnvoller, die andere Ping-Funktion (asynchrone) zu nutzen, |
Jup, dafür ist das gedacht.
Shyran hat folgendes geschrieben : | der Aufruf und die Callback Funktion sind mir dabei aber noch unklar, das muss ich zunächst noch verstehen.
[...]
Ein kleiner Schubs in Richtung der Nutzung der ansynchronen Funktion wäre hilfreich für mich. |
Dazu habe ich die Demo-Anwendung geschrieben, dort wird auch der asynchrone Ping eingesetzt, einfach mal im ersten Beitrag reinsehen.
Shyran hat folgendes geschrieben : | Obiger Code-Schnippsel liefert mir unbefriedigende Ergebnisse. In meiner Listbox tauchen nur wenige Adressen auf, im eigenen Subnet aber sind deutlich mehr vertreten. |
Standard-Timeout sind 1000ms, zum Einen. Zum Anderen gibt es bei massiven Ping-Requests manchmal probleme mit Intrusion-Detection-Systemen, die blocken sowas dann. Auch die sonstige Netzauslastung kann eine Rolle spielen, ICMP-Pakete sind ja wie UDP volatil.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Shyran
Beiträge: 20
Rad Studio XE
|
Verfasst: Fr 09.09.11 12:44
Angeschaut habe ich die Demo selbstverständlich (hatte ja geschrieben, dass ich sie selbst auch compiliert hatte, zum Testen), aber noch "Erfurcht" vor der Anwendung besaß. Nun habe ich mir nach Deinem letzten Beitrag Deine Demo mal vorgenommen ... und möchte - insbesondere auch für die anderen Nutzer und vlt. auch "Anfänger", darstellen, wie ich das nun nutze. Das gehört in diesem Forum bestimmt auch zum guten Ton (bin ja neu).
Also zunächst in den Deklarationen meines Programms hinzu:
Delphi-Quelltext 1:
| procedure PingResult(Result: TAsyncPingResult); |
Auf Knopfdruck dann wird der Ping auf das Subnet losgelassen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm2.Button2Click(Sender: TObject); var i,j,RefID :integer; begin RefID:=1; for j:=2 to 254 do begin Ping.ExecuteAsync(RefID,'192.168.212.'+IntToStr(j),PingResult); end; end; |
Um dann im Anschluss zu einem kleinen Teil ausgewertet zu werden. Mich interessierte in diesem Fall nur, ob Datensammler an meinem GPRS-Router hingen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure TForm2.PingResult(Result: TAsyncPingResult); begin if Result.ErrorCode=0 then begin Listbox2.Items.Add(inet_ntoa(Result.IPv4)); end; end; |
Begeistert war ich insb. von der Geschwindigkeit, in der meine Listbox sich auffüllte - echt toll!
Nohchmal dickes danke an Narses. Es sieht alles am Ende so einfach aus ...
-Shyran
|
|
Enricoffo
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 19.11.13 21:57
Hallo,
ist ja schon eine Weile her, daher meine Frage:
Gibt es schon ein Update der Unit, wo auch IP V6 unterstützt wird?
|
|
Narses
Beiträge: 10182
Erhaltene Danke: 1255
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 19.11.13 22:40
Moin und im Forum!
Enricoffo hat folgendes geschrieben : | Gibt es schon ein Update der Unit, wo auch IP V6 unterstützt wird? |
Nein, gibt es bisher nicht und habe ich auch (bisher) nicht geplant.
Aber ist ja open-source, also immer gerne ran an die Buletten.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 10.01.15 06:21
In der Demo ist übrigens im Formular Position auf poDesktopCenter statt poScreenCenter gesetzt. Mit einer geraden Anzahl von Bildschirmen ist das schlecht, weil das Fenster genau zur Hälfte auf dem einen und zur Hälfte auf dem anderen Monitor ist.
Das beeinträchtigt die Demo nicht, ist aber ja auch leicht zu ändern.
Nebenbei ist die Demo ein sehr gutes Beispiel für den Bug in Delphi 7 bezüglich des Fensterrahmens. Die angehängte Exe sieht unter XP richtig aus, aber ab Vista nicht mehr... (siehe am rechten und unteren Rahmen)
Einloggen, um Attachments anzusehen!
|
|
jaenicke
Beiträge: 19288
Erhaltene Danke: 1743
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 16.01.15 08:53
Hier übrigens eine Lösung für Delphi 7 für das Randproblem:
www.entwickler-ecke....ewtopic.php?p=691804
Für diesen Beitrag haben gedankt: Narses
|
|
|