Hallo,
ich habe hier ein kleines Problem. Und zwar will ich in einen thread auf einen Server Connecten. Wenn der Server nun aber nicht verfügbar ist kann ich den Fehler bei Connect nicht abfangen. Delphi Meldet mir noch das der socket nicht zur Verfügung steht, aber der Thread beendet sich dann sofort.
eigentlich sollte der Thread ja weiterlaufen und immer wieder versuchen zu den Server zu connecten:
Ein Try/Except usw hilft leider nichts.
Es ist
Indy 10.
Delphi-Quellcode:
procedure TTCPClient.Execute;
var
ReceivedMessage :
String;
begin
{ Thread-Code hier einfügen }
//init TCP Client:
IdTCPClient := TIdTCPClient.Create(
nil);
if Assigned(IdTCPClient)
then
begin
IdTCPClient.Port := fPort;
IdTCPClient.Host := fHostName;
IdTCPClient.ReadTimeout := fReadTimeout;
while not Terminated
do
begin
if IdTCPClient.Connected
then begin
IdTCPClient.IOHandler.WriteLn('
Client ist schon verbunden');
end
else begin
IdTCPClient.ConnectTimeout := 1000;
IdTCPClient.Connect; -->> hier fehler weil Server nicht gestartet. Wie abfangen?
if IdTCPClient.Connected
then
IdTCPClient.IOHandler.WriteLn('
Client hat sich jetzt verbunden.');
end;
if IdTCPClient.Connected
then
begin
repeat
//do code stuff here
until (
Not IdTCPClient.Connected)
Or Terminated;
end;
end;
end;
end;