Jak powinienem być wracając do zdrowia w tej sytuacji?odzyskiwanie z "Connection Reset Peer" Indy TCP Client
Serwer ulega awarii, a więc połączenie zostało nieprawidłowo zamknięte. Połączenia z niemal wszystkim powodują wyjątki "Połączenie resetuj według partnera". Wydaje się, że naprawiłem to, wywołując Disconnect na obiekcie TIdTCPClient wewnątrz bloku except, ale powoduje to jeden końcowy wyjątek z tą samą wiadomością (którą złapałem w drugim bloku try-except).
Jest to z Indy10 i 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;
Próbowałaś do debugowania do TIdTCPConnection.Disconnect w IdTCPConnection.pas? Być może program obsługi OnDisconnect jest wykonywany i używa połączenia. Lub NotifyPeer odgrywa rolę, zobacz także komentarze w źródle dotyczące różnych scenariuszy. – mjn
Uwolnienie obiektu i utworzenie nowego, pomoże (ale nie pomoże znaleźć przyczyny wyjątku). – mjn
Nie przejmuję się tym, dlaczego Otrzymuję wyjątek podczas wywoływania rozłączenia. Chcę tylko wiedzieć, jak prawidłowo wyleczyć się z takiej sytuacji. –