![]() |
Mehrere TIdIcmpClient funktionieren nicht richtig?
Hallo Leute!
Ich schreibe gerade ein Programm, welches verschiedene Verbindungen testet, indem es immer wieder einen Ping an verschiedene Hosts sendet. Hierzu benutze ich die Indy Komponente TIdIcmpClient (Indy 10). Für jeden Host wird ein Thread erzeugt, der dann jeweils einen TIdIcmpClient enthält. Die Ergebnisse werden in einer Logdatei gespeichert. Und jetzt treten zwei eigenartige Dinge auf: Zitat:
Zitat:
Danke schonmal im Vorraus Richard |
Re: Mehrere TIdIcmpClient funktionieren nicht richtig?
Das Problem sieht jetzt anders aus:
Also erstmal vorweg: Ich bin auf Indy9 umgestiegen. Aber das funktioniert immer noch nicht richtig. Nehmen wir mal an ich habe
Code:
Thread1:
- Interval (Zeit, die gewartet wird bis zum nächsten Ping): 1000 - ReceiveTimeout (Zeit, bis Ping als Timeout gewertet wird): 5000 - Host: 192.111.111.111 (Existiert definitiv nicht!)
Code:
Passiert zum Beispiel folgendes:
Thread2:
- Interval und ReceiveTimeout wie Thread1 - Host: 192.168.8.1 (Existiert garantiert)
Code:
- obwohl BytesReceived 0 ist, Echo kommt wohl, weil die Zeit bis zur Antwort 2984 ist, aber warum ist das so? ReceiveTimeout ist 5000 und trotzdem kommt eine Antwort mit BytesReceived 0 ( = Timeout!!!!). Die Zeit schwankt etwa zwischen 3000 und 3500.
Datum | Host | Millisekunden | PingResultType(prt) | ID | ReceiveTimeout | BytesReceived
22.06.2007 08:56:59 | 192.168.8.1 | 2 | prtEcho | 1 | 5000 | 72 //Echo 22.06.2007 08:57:00 | 192.168.8.1 | 2 | prtEcho | 1 | 5000 | 72 //Echo 22.06.2007 08:57:00 | 192.111.111.111 | 2984 | prtEcho | 0 | 5000 | 0 //Echo!?!?!?! Das interessante ist, je nachdem wieviele Threads ich noch hinzufüge, geht diese Zeit nach unten, wenn ich ReceiveTimeout vervierfache, wird diese Zeit verdoppelt und je näher Interval an ReceiveTimeout dran ist, desto näher ist das Ergebnis für den Timeout an ReceiveTimeout. Meine Frage lautet weiterhin: Hat jemand schonmal ähnliche Probleme gehabt mit dem IdIcmpClient? Weiß jemand ob dies ein typisches Verhalten ist oder liegt der Fehler tatsächlich in meinem Programm... habe den gesammten Quellcode schon X-Mal durchgesehen... Danke schonmal! Richard |
Re: Mehrere TIdIcmpClient funktionieren nicht richtig?
Moin Richard,
warum das bei dem Indy-Client so ist kann ich Dir leider auch nicht sagen, aber vielleicht hilft es ja schon, wenn Du direkt ![]() Das hätte dann auch den Vorteil, dass Du keine Admin-Rechte brauchst, wie beim Indy-Ping. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz