このような状況で、どのように回復すればよいでしょうか?
サーバーがクラッシュしたため、接続が異常終了しました。ほとんどすべてを呼び出すと、「ピアによる接続リセット」例外が発生します。例外ブロック内の TIdTCPClient オブジェクトで Disconnect を呼び出すことで修正したようですが、同じメッセージで 1 つの最終的な例外が発生します (これは 2 番目の try-except ブロックでキャッチしました)。
これは Indy10 と Delphi XE2 の場合です。
try
if not EcomSocket.Connected then EcomSocket.Connect();
except
on e: Exception do begin
try
EcomSocket.Disconnect();
except
MessageDlg('Connectivity to the server has been lost.', mtError, [mbOK], 0);
end;
end;
end;