![]() |
Ping Problem
Hallo
Ich habe folgendes Problem: Mein Delphi Programm sollte mehrere verschiedene (derzeit 12) verschiedene PC's anpingen und bei bestehender Verbindung Daten aus einer fernen mySql-DB auslesen. [das ist ja weiter nicht das Problem] - nur die PC's sind mittels DFÜ mit meinem Rechner verbunden und im besten Fall(ISDN) bin ich mit 2en verbunden. - der derzeitige Status ist daß ich der Reihe nach alle 12 IP's anpinge, da aber auch PC's auf der Gegenseite mittels GSM-Modem verbunden sind (max. Baudrate 9600) muß ich den Timeout von Ping auf ca. 3000ms setzen. [und nun fängt das eigentliche Problem an... 1.) bei einem Ping an eine derzeit nicht verbundenen IP wird während des Timeouts das ganze Programm eingefroren und wegen der erforderlichen Zeit von 3 sek. äusserst unangenehm. 2.) das anpingen von einer derz. nicht verbundenen IP wird nach dem Timeout mit einer Fehlermeldung "is not a valid IP address" quittiert wobei mir ist nicht klar ist, wie ich diese Message wegbekomme da diese mit OK zu Kenntniss nehmen muß. Also langer Rede kurzer Sinn: Prinzipiell weiß ich für beide Probleme die Lösung, nur leider scheitere ich trotz Studium der Delphi - Hilfe zum Thema "try..?" und von Luckis "Threads_mit_Delphi" an der Lösung des Problems. Wenn mir jemand ein paar Codezeilen zukommen lassen würde wäre mir mehr geholfen als mit gutgemeinten Verweise auf Tutorials, da ich schon tagelang das Internet nach einen auch für mich verständlichen (umsetzbaren) Denkanstoß durchforste. PS: für einen zielführenden Tipp würde ich doch glatt ein Drink springen lassen. Grüsse Schlingel |
Re: Ping Problem
Hallo!
Ich habe mich auch mal an das Thema Threads gemacht. Dabei half mir das Threads Demo-Projekt, welches mit Delphi (7) mitinstalliert wird. Gruss Michi |
Re: Ping Problem
für das einfrieren müsstest du die ping proceduren in einen thread auslagern der das im hintergrund macht
für die fehlermeldung musst du einfach nur deine ping procedure mit try except umrahmen damit der fehler net an windows weiter gereicht wird oder halt ne messagebox kommt try ping(timeoutbla); except //pc ist offline ( timeout ) end; |
Re: Ping Problem
|
Re: Ping Problem
Hallo Christian
...derzeit mit den Indys.(IdIcmpClient) @supermuckl (muß schmunzeln) aber genau das mit in einen thread auslagen... wenn ich nicht kapiere wie ich das anstellen muß. |
Re: Ping Problem
Moin Schlingel,
dann denk' dran, dass das in dem Falle nur geht, wenn es mit administrativen Berechtigungen läuft. |
Re: Ping Problem
Hallo Christian
Danke für den Hinweis. Ich hab das mit den Admin-Rechten in den Indys gelesen, nur es funktioniert ja schon und das mit den Rechten stellt auch nicht so ein Problem dar, da diese fernen DFÜ-Anlagen(PC-Netzwerke von 3..70 Rechnern über LWL [Windräder mit jeweils 650..1500kw] nach meinen Vorgaben mit XP-Prof. eingerichtet wurden. Grüsse |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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