![]() |
IdcmpClient Meldung unterdrücken?
Hi, ich bins schon wieder :-D
Ich versuche gerade ein paar IP Adressen an zu pingen. Das klappt eigentlich auch schon. Wenn aber die IP Adresse nicht korrekt ist / nicht existiert, erhalte ich den Fehler: Socket Error Host not Found. (Ist ja auch logisch) Aber wie kann ich das ignorieren, so dass er einfach mit dem nächsten Eintrag weiter macht? So starte ich den Ping:
Delphi-Quellcode:
und so wollte ich dann das Ergebnis auswerten. Aber es kommt ja eben gar nicht so weit.
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; begin if listbox1.ItemIndex=-1 then begin listbox1.ItemIndex:=0; listbox2.ItemIndex:=0; end; idi1.Host := listbox1.Items[listbox1.ItemIndex]; idi1.Port:= strtoint(form1.ListBox2.Items[form1.ListBox2.ItemIndex]) ; idi1.Ping(); end;
Delphi-Quellcode:
procedure TForm1.IdI1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus); begin if (AReplyStatus.MsRoundTripTime < 1000) then begin edit1.Text:=(AReplyStatus.FromIpAddress); edit2.Text:= form1.ListBox2.Items[form1.ListBox2.ItemIndex]; edit1.Color:=clgreen; edit2.Color:=clgreen; button2.Enabled:=true; label2.Caption:='3'; if checkbox2.Checked=true then begin checkbox2.Checked:=false; button2.Click; end; end else begin edit1.Color:=clred; edit2.Color:=clred; listbox1.Items.Delete(0); listbox2.Items.Delete(0); button1.Click; button2.Enabled:=false; if checkbox3.checked then begin listbox1.Items.SaveToFile(ExtractFilePath(Application.Exename)+'\Server.txt'); listbox2.Items.SaveToFile(ExtractFilePath(Application.Exename)+'\Port.txt'); end; end; Danke euch schon jetzt wieder mal :-D |
AW: IdcmpClient Meldung unterdrücken?
Hallo,
mit der Methode "dreist alle Fehler ignorieren:"
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i : Integer; begin if listbox1.ItemIndex=-1 then begin listbox1.ItemIndex:=0; listbox2.ItemIndex:=0; end; idi1.Host := listbox1.Items[listbox1.ItemIndex]; idi1.Port:= strtoint(form1.ListBox2.Items[form1.ListBox2.ItemIndex]) ; try idi1.Ping(); except on e : Exception do begin // hier eventuell die Fehler in eine Datei schreiben // oder in einem Memo sammeln oder hier einfach keinen // weiteren Quelltext einfügen. // Dann werden alle Fehler ignoriert. // Die Fehlermeldung steht in e.Message. end; end; end; |
AW: IdcmpClient Meldung unterdrücken?
Kleiner Haken: wenn nacheinander einige Ping-Anfragen an verschiedene Zieladressen abgeschickt werden, und dann irgendwann eine Reihe von Ping-Antworten eintreffen, woran erkennt das Programm dann, welche Antwort zu welcher Anfrage gehört?
Einfache Lösung: nach jeder Anfrage erst auf die Antwort warten, oder bis ein (relativ hoch gewähltes) Timeout-Zeitfenster erreicht wird, bevor man den nächsten Server anpingt. |
AW: IdcmpClient Meldung unterdrücken?
Ah TipTop.
Vielen Dank :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:08 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