odzyskiwanie z „Reset połączenia przez peera” Indy TCP Client

Jak powinienem odzyskać siły w tej sytuacji?

Serwer ulega awarii, dlatego połączenie zostało nieprawidłowo zamknięte. Wywołania prawie wszystkiego powodują wyjątki „Resetowanie połączenia przez peera”. Wydaje mi się, że naprawiłem go, wywołując Disconnect na obiekcie TIdTCPClient wewnątrz bloku except, ale powoduje to jeden ostateczny wyjątek z tym samym komunikatem (który złapałem w drugim bloku try-except).

To jest z Indy10 i Delphi XE2.

<code>   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;
</code>

questionAnswers(1)

yourAnswerToTheQuestion