Bu durumda nasıl kurtarmalıyım?"Bağlantı Sırasıyla Sıfırlama" kurtarma TCP İstemcisi
Sunucu çöküyor, dolayısıyla bağlantı anormal şekilde kapatıldı. Hemen hemen her şeye çağrı "Eş tarafından Bağlantı Sıfırlama" istisnaları ile sonuçlanır. TIdTCPClient nesnesindeki Disconnect'i blok dışında çağırmakla sabitledim, ancak aynı iletiyle (ikinci try-except bloğunda yakaladığım) bir son istisna ile sonuçlanır.
Bu, Indy10 ve Delphi XE2 ile geçerlidir.
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;
Eğer IdTCPConnection.pas içinde TIdTCPConnection.Disconnect içine hata ayıklama denediniz mi? Belki bir OnDisconnect işleyicisi yürütülür ve bağlantıyı kullanır. Veya NotifyPeer bir rol oynar, ayrıca farklı senaryolar hakkındaki kaynaklara bakın: – mjn
Nesneyi serbest bırakmak ve yeni bir tane oluşturmaya yardımcı olacak yeni bir tane yaratacaktır (istisna nedenini bulmakta yardımcı olamayacaksınız) – mjn
Neden bu kadar çok endişelenmiyorum Bağlantıyı keserken bir istisna alıyorum. Sadece böyle bir durumdan nasıl düzgün bir şekilde kurtulacağını bilmek istiyorum. –