IdIcmpClient



  • Guten Morgen,

    hätte villeicht jemand einen Tip für mich ? 🙂

    Ich möchte in einem Formular darstellen ob bestimmmte Hosts im Netz erreichbar sind und zwar mit IdIcmpClient:

    IdIcmpClient1->Host = "192.168.5.250";
    try{
    	IdIcmpClient1->Ping();
    		if (IdIcmpClient1->ReplyStatus->MsRoundTripTime > 0) {
    		Label1->Font->Color=clGreen;
    		Label1->Caption = IdIcmpClient1->ReplyStatus->MsRoundTripTime;
    		}
    	}
    	catch(...){
    	Label1->Font->Color=clRed;
    	Label1->Caption = "Offline";
    	}
    

    Das Funktioniert auch soweit einwandfrei, aber wenn der Host nicht erreichbar ist, dauert ein Durchgang ewig.

    Hätte villeicht jemand einen Verbesserungvorschlag für mich... ? 😕

    Leider funktioniert meine Borland Hilfe auch nicht 🙄

    Beste Grüße



  • Timeout Property?
    Hier steht noch was interessantes:
    http://www.delphipraxis.net/1251-ping-delphi-ausfuehren.html
    Ping + Vista = Problem
    Keine Ahnung ob das immer noch gilt...

    mfg
    xXx



  • Danke 🙂

    So hat es bei mir jetzt funktioniert:

    IdIcmpClient1->ReceiveTimeout = 20;
    	IdIcmpClient1->Host = "10.68.28.145";
    	try{
    	IdIcmpClient1->Ping();
    		if (IdIcmpClient1->ReplyStatus->BytesReceived > 0) {
    		Label1->Font->Color=clGreen;
    		Label1->Caption = "Online";
    		}
    				else{
    				Label1->Font->Color=clRed;
    				Label1->Caption = "Offline";
    				}
    	}
    	catch(...){
    	Label1->Font->Color=clRed;
    	Label1->Caption = "Offline";
    	}
    

    meint ihr, dass das Timeout von 20ms noch ausreichend ist?

    MFG


Anmelden zum Antworten