AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

syncronen ICS Ping abbrechen?

Ein Thema von newbe · begonnen am 27. Apr 2015 · letzter Beitrag vom 27. Apr 2015
Antwort Antwort
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#1

syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 08:10
Delphi-Version: 5
Hallo zusammen,

ich wollte mal Fragen, ob es möglich ist, einen syncronen ICS Ping abzubrechen. Hintergrund ist, das ich diesen in Threads verwende und er wenns dumm kommt den Thread blockiert bist der Timeout eintritt.

mfg newbe
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 08:24
Guten Morgen,

kann der Timeout des Pings nicht entsprechend klein(500ms) wählen.
Denn auch wenn Du den Ping abschiessen willst musst Du ja auch eine
gewisse Zeit abwarten (ob der Ping nicht doch noch erfolgreich ist)
bevor der Ping beendet wird.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#3

AW: syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 09:09
@Klaus

ja natürlich könnte man den Timeout kleiner machen, was aber unschön wäre, da ich dann gegf. nicht wirklich weis, ob die Pakete wirklich verloren gehen oder nur sehr langsam ankommen. Ich habe jetzt als Timeout 3 sekunden angegeben, das ist das was auch der Windows ping macht, wenn ich mich nich irre bzw. er 3 x 1 sekunde nimmt. Problem is ich kann den tread zwar über ne schleifenvariable abbrechen, jedoch nützt das nichts wenn der host halt nicht antwortet, dann wird der thread für 3 sekunden blockiert.

mfg newbe
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 09:18
..warum willst Du den Thread vor Ablauf des Timeouts beenden.
Es könnte doch sein, dass innerhalb der 3 Sekunden ein Antwort ankommt.

Was ich damit sagen will, setze den Timeout entsprechend Deiner Netzqualität.
Ein Ping-Response der länger als 500ms benötigt ist doch eher unwahrscheinlich.

Code:
ping www.delphipraxis.net

Pinging www.delphipraxis.net [88.198.53.15] with 32 bytes of data:
Reply from 88.198.53.15: bytes=32 time=125ms TTL=56
Reply from 88.198.53.15: bytes=32 time=52ms TTL=56
Reply from 88.198.53.15: bytes=32 time=250ms TTL=56
Reply from 88.198.53.15: bytes=32 time=113ms TTL=56

Ping statistics for 88.198.53.15:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 52ms, Maximum = 250ms, Average = 135ms

ping www.google.com

Pinging www.google.com [173.194.113.116] with 32 bytes of data:
Reply from 173.194.113.116: bytes=32 time=50ms TTL=58
Reply from 173.194.113.116: bytes=32 time=50ms TTL=58
Reply from 173.194.113.116: bytes=32 time=49ms TTL=58
Reply from 173.194.113.116: bytes=32 time=49ms TTL=58

Ping statistics for 173.194.113.116:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 49ms, Maximum = 50ms, Average = 49ms
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
newbe

Registriert seit: 14. Okt 2008
143 Beiträge
 
Delphi 7 Personal
 
#5

AW: syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 09:38
@Klaus

z.B: wenn ich das Programm beende. Mainthread und Controls werden freigegeben. Pingthread ist im Timeout und wartet, Syncronize schmeißt dann Access Violation, da VCL controls schon freigegeben sind.

mfg newbe

Geändert von newbe (27. Apr 2015 um 09:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: syncronen ICS Ping abbrechen?

  Alt 27. Apr 2015, 10:11
Wenn das Programm beendet werden soll, dann sollte der Thread auch nichts mehr zurückmelden.

Das muss man aber programmieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:05 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