Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#2

Re: Mehrere TIdIcmpClient funktionieren nicht richtig?

  Alt 22. Jun 2007, 08:13
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:
Thread2:
- Interval und ReceiveTimeout wie Thread1
- Host: 192.168.8.1 (Existiert garantiert)
Passiert zum Beispiel folgendes:

Code:
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!?!?!?!
- 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.

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
Richard Mahr
  Mit Zitat antworten Zitat