この状況でどのように復旧する必要がありますか?「接続リセットによるピア」Indy TCPクライアント
サーバーがクラッシュし、接続が異常終了しました。ほとんどの場合、 "Connection Reset By Peer"例外が発生します。 exceptブロック内のTIdTCPClientオブジェクトでDisconnectを呼び出すことで修正したようですが、同じメッセージ(これは2番目のtry-exceptブロックで捕捉したもの)で1つの最終例外が発生します。
これは、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;
あなたはIdTCPConnection.pasにTIdTCPConnection.Disconnectにデバッグしようとしましたか? OnDisconnectハンドラが実行され、その接続が使用されている可能性があります。または、NotifyPeerが役割を演じます。さまざまなシナリオに関するソースのコメントも参照してください。 – mjn
オブジェクトを解放して新しく新しいオブジェクトを作成すると、例外の理由を見つけるのに役立ちません。 – mjn
なぜそれほど心配していませんか切断を呼び出すときに例外が発生しています。このような状況から適切に回復する方法を知りたいだけです。 –