Gemeinde.
Und ich habe ebenfalls genau dasselbe Problem oder fast.
Mein Client verbindet sich zum Server und der Server wird aus irgendwelchen Gründen unsauber beendet.
Die Verbindungen zu den verbundenen Clients wird also nicht korrekt beendet.
Selbst mit ReadTimeout hängt sich das Programm auf und befindet sich in einer Endlosschleife OBWOHL eine
AV geworfen werden müsste:
Delphi-Quellcode:
while not Terminated
do
begin
Sleep(5000);
IdTCPClient.ReadTimeout := 2000;
IdTCPClient.IOHandler.ReadTimeout := 2000;
if IdTCPClient.Connected
then
begin
try
s := IdTCPClient.IOHandler.ReadLn;
except
on E:
Exception do
WriteLn(PChar(E.ToString));
break;
end;
end
else
begin
break;
end;
end;