Hallo zusammen,
ich erstelle dynamisch bis zu 8 clientsockets
.....
Code:
For j := 0 To 4 do
begin
If (PreisLedCfg[j].IP_Ausfahrt <> '0.0.0.0') then
begin
try
Price_Info_ClientSocketA:=TclientSocket.Create(self);
with Price_Info_ClientSocketA do
begin
Name := 'Price_Info_ClientSocketA_'+PreisLedCfg[j].Anlage; // A für Ausfahert
ClientType := ctNonBlocking;
Host := GetIPFromHost(PreisLedCfg[j].IP_Ausfahrt);//GetIPFromHost(host[i]); //
IP des Zielrechners
Port:=StrToInt(PreisLedCfg[j].Port);
active :=true; //Aufbau der Verbindung
OnError := Price_Info_ClientSocketA_Error;
end; // create Price_Info_ClientSocket
except
end;
// ShowMessage(
Exception(ExceptObject).Message);
end;
....
Nun habe ich das Problem, dass bei einem Onerror die Verbindung über einen Timer reconnected wird.
Dazu wollte ich über
If not (TClientsocket(FindComponent(Price_Info_ClientSock etE.Name)).active) then
//if not Price_Info_ClientSocketE.Active then
begin
Memo1.Lines.Add(Price_Info_ClientSocketE.Name +'<connection failed>');
TClientsocket(FindComponent(Price_Info_ClientSocke tE.Name)).Active := true;
//Price_Info_ClientSocketE.Active := true;
Reconnect;
den besimmten clientsocket wieder auf activ setzen.
procedure TMainForm.Reconnect;
begin
Timer_PriceInfo.Interval := Pause;
Timer_PriceInfo.Enabled := True;
Memo1.clear;
Memo1.Lines.Add(Price_Info_ClientSocketE.Name +'<attempting to reconnect in '+ IntToStr(Pause) +'ms>')
end;
aber irgendwie funktioniert es nicht, dass der clientsocket sich wieder connectet
Vielen Dank schon mal für eure Hilfe