Schreib ins OnDisconnect vom Server noch ein
if TCPServer.Active then
.
Eine andere (und wie ich finde bessere) Möglichkeit wäre, vom Server vor dem Beenden alle Verbindungen kappen zu lassen:
Delphi-Quellcode:
var
list: TList;
i: Integer;
begin
list:= TCPServer.Contexts.LockList;
try
for i := 0 to list.Count - 1 do
TIdContext(list[i]).Connection.Disconnect;
finally
TCPServer.Contexts.UnlockList;
end;
end;
Genereller Hinweis: Versuche lieber die Ursache einer
Exception zu beseitigen (natürlich nur sofern möglich) anstatt sie irgendwo abzufangen.