从"Connection Reset By Peer"印地TCP客户端恢复



在这种情况下,我应该如何恢复?

服务器崩溃,因此连接已异常关闭。 对几乎所有内容的调用都会导致"对等方连接重置"异常。 我似乎已经通过在 except 块内的 TIdTCPClient 对象上调用断开连接来修复它,但它会导致具有相同消息的最后一个异常(我在第二个 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;

试试这个:

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; 

最新更新