Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Asynchroner socket Fehler abfangen (https://www.delphipraxis.net/100988-asynchroner-socket-fehler-abfangen.html)

cRayZo 6. Okt 2007 16:12


Asynchroner socket Fehler abfangen
 
hi, ich möchte die Fehlermeldung "asynchroner Socketfehler (..)" abfangen.
ich weiß wieso er entsteht, nur möchte ich meinen Client automatisch eine Verbindung zum Server aufbauen lassen, sobald der Port aktiv ist.

mit try except in der Procedure wo er den client aktiviert kann ich den Fehler nicht abfangen. Liegt das am Try except oder am falschen ort, wo ich den Fehler abfangen will, wenn ja wo muss ich den Fehler abfangen?

Delphi-Quellcode:
try ClientSocket1.active := true;
except {wasauchimmer}<-- geht nicht

sk0r 6. Okt 2007 16:18

Re: Asynchroner socket Fehler abfangen
 
Hallo.

Würde es nicht in der folgenden Methode gehen?

Delphi-Quellcode:
procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
MfG: sk0r

combocraft 6. Okt 2007 16:38

Re: Asynchroner socket Fehler abfangen
 
Du musst folgenden Code verwenden:
Delphi-Quellcode:
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode := 0;
end;
Das behebt dein Problem! :)

cRayZo 6. Okt 2007 17:27

Re: Asynchroner socket Fehler abfangen
 
ja aber es sorgt doch dafür, dass auch keine sonstigen errors mehr kommen oder?

auch auch egal, klappt jedenfalls, thx ;)

Muetze1 6. Okt 2007 18:27

Re: Asynchroner socket Fehler abfangen
 
In der Fehlermeldung die du früher bekommen hast, stand ein Fehlercode mit drin - und auf diesen kannst du im OnError Ereignishandler vergleichen (siehe Parameter Delphi-Referenz durchsuchenErrorCode) und z.B. nur auf diesen Fehler hin die Fehlerausgabe unterdrücken. Oder du gibst einfach selber die Fehler aus im OnError Ereignishandler - z.b. kannst du ja SysErrorMessage() verwenden - und dabei kannst du dann auch wieder genau den o.g. Fehlercode auslassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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