delphi - recuperándose del cliente Indy TCP "Restablecimiento de conexión"
(1)
¿Cómo debería estar recuperándome en esta situación?
El servidor falla, por lo tanto, 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;
Prueba esto:
try
if not EcomSocket.Connected then EcomSocket.Connect();
except
try
EcomSocket.Disconnect(False);
except
end;
if EcomSocket.IOHandler <> nil then EcomSocket.IOHandler.InputBuffer.Clear;
MessageDlg(''Connectivity to the server has been lost.'', mtError, [mbOK], 0);
end;