¿Cómo debo estar recuperándome en esta situación?recuperándose de "Connection Reset By Peer" Indy TCP Client
El servidor falla, por lo que la conexión ha sido anormalmente cerrada. Las llamadas a casi todo resultan en excepciones de "Restablecimiento de conexión por pares". Parece que lo solucioné llamando a Desconectar en el objeto TIdTCPClient dentro del bloque except, pero da como resultado una excepción final con el mismo mensaje (que he capturado en el segundo bloque try-except).
Esto es con Indy10 y 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;
¿Se intenta depurar en TIdTCPConnection.Disconnect en IdTCPConnection.pas? Tal vez se ejecuta un controlador OnDisconnect y utiliza la conexión. O el NotifyPeer juega un rol, vea también los comentarios en la fuente sobre diferentes escenarios – mjn
Liberar el objeto y crear uno nuevo ayudará (pero no ayudará a encontrar el motivo de la excepción) – mjn
No me preocupa tanto el por qué Recibo una excepción cuando llamo desconectarme. Solo quiero saber cómo recuperarse adecuadamente de una situación como esta. –