25-02-2021, Saat: 22:09
Merhaba,
TIdTCPServer componentine iki adet Arduino Mega 2560 geliştirme kartını W5500 ethernet modülüyle(wiznet) ve bir adet ESP 32 kablosuz olarak Delphi VCL uygulamasına TCP portu üzerinden bağlıyorum.
TIdTCPServer onDisconnect olayında aşağıdaki kod bulunuyor:
Bu kod mikroişlemciler TCPServer'dan koptuğunda tetiklenmiyor çalışmıyor.
İnternet aramasına :
yazdığımda çıkan Remy Lebeau stackoverflow cevabında
.SetKeepAliveValues kullanılmasını önermiş. Bende onConnect olayına
bu kodu ekledim. Bu kod çoğunlukla onDisconnect'in tetiklenmesini sağlıyor zaman zamanda sağlamıyor.
Aynı VCL uygulamasına FMX Android'den bağlanıp koptuğumda onDisconnect hemen tetikleniyor.
SetKeepAliveValues haricinde kullanabileceğim bir yöntem var mı?
Bu yöntem %80 onDisconnect'i tetikliyor.
Değerli tavsiyelerinizi okumak isterim, iyi çalışmalar.
TIdTCPServer componentine iki adet Arduino Mega 2560 geliştirme kartını W5500 ethernet modülüyle(wiznet) ve bir adet ESP 32 kablosuz olarak Delphi VCL uygulamasına TCP portu üzerinden bağlıyorum.
TIdTCPServer onDisconnect olayında aşağıdaki kod bulunuyor:
var
LHost: string;
LItem: TListItem;
begin
TIdNotify.NotifyMethod(clientkoptu);
TThread.Queue(nil,
procedure
begin
LItem := Form1.ListView1.FindData(0, AContext, true, false);
if LItem <> nil then LItem.Delete;
// ShowMessage('Bağlantı yok');
end);
Form1.Memo1.Lines.Add(DateTimeToStr( Now ) +' '+ 'Arduino Bağlantısı Koptu');
//Arduino bağlantısının koptuğunu bildirdik
end;
Bu kod mikroişlemciler TCPServer'dan koptuğunda tetiklenmiyor çalışmıyor.
İnternet aramasına :
Alıntı:delphi indy detect onDisconnect
yazdığımda çıkan Remy Lebeau stackoverflow cevabında
Alıntı: you can call the AContext.Binding.SetKeepAliveValues()
method to enable keep-alives. The OS will then handle the keep-alives for you, and will invalidate the connection if the timeout elapses.
.SetKeepAliveValues kullanılmasını önermiş. Bende onConnect olayına
AContext.Binding.SetKeepAliveValues(True,500,500);
bu kodu ekledim. Bu kod çoğunlukla onDisconnect'in tetiklenmesini sağlıyor zaman zamanda sağlamıyor.
Aynı VCL uygulamasına FMX Android'den bağlanıp koptuğumda onDisconnect hemen tetikleniyor.
SetKeepAliveValues haricinde kullanabileceğim bir yöntem var mı?
Bu yöntem %80 onDisconnect'i tetikliyor.
Değerli tavsiyelerinizi okumak isterim, iyi çalışmalar.
