Sunucunun istemciye veri gönderdiği ve istemcinin verileri geri gönderdiği bir sunucu/istemci uygulaması oluşturmaya çalışıyorum. Ama nedense, veri yazmadan zarif olmayan bir bağlantıyı nasıl algılayacağımı bilmediğim için çalışmayı başaramıyorum (arabellek, ihtiyacım olmayan yanlış verilerle doldurulacağından veri yazamıyorum). Bunu yapmanın başka bir yolu var mı? TCP kullanıyorum.Yetkisiz bir bağlantıyı kesmek için C#
cevap
Güvenilir olmayan bir ağda TCP bağlantılarının davranışını açıklıyorsunuz. Yani başka bir protokol kullanmanız gerekiyor. Ben sorunu tam anlayamadım
Güvenilir bir ağdır, ancak sunucu bağlantısı kesilirse tüm istemcileri el ile yeniden bağlamak istemiyorum. –
hangi protokolü kullanıyorsunuz? –
Üzgünüz cevabınızı yanlış anladım. Ben zaten TCP kullanıyorum. –
göz at, ancak soket hala bağlı olup olmadığını kontrol edebilir:
public bool IsSocketConnected(Socket socket) {
return !(socket.Poll(0, SelectMode.SelectRead) && socket.Available == 0) && socket.Connected;
}
Teşekkürler. Bu, zarif bir bağlantı kesme için çalışır. Ancak, yetkisiz bir bağlantı kesme için değil. (sunucu ağı rasgele ayrıldığında) –
Bir zaman aşımına karar vermek (örnekte olduğu gibi "0" dışında) pragmatik bir çözüm olabilir. Eğer bir bağlantı kesiksiz bir şekilde kesilirse, “hayatta kalan” taraf, durumu değiştirmek için kelime aldıkça (bu kelimenin bağlantısının kesildiği taraftan gelmesi gerekmediği için) bağlı durumda tutulur. bir zaman aşımı mekanizması tanıtıldı. – kasperhj
Bir KeepAlive ile çözdüm işlevi.
- 1. Bir sözlüğü "kesmek" için LINQ'u nasıl kullanabilirim?
- 2. Bağlantıyı gizle bağlantıyı koruyun
- 3. Tıklayın ve kesmek ve kesmek sürükleyin IntelliJ Idea IDE
- 4. Boru çıkışını kesmek
- 5. QThread sonsuz döngüsünü düzgün bir şekilde kesmek için
- 6. C# bağlantı havuzunda açık bağlantıyı tutmalıyım
- 7. Tespit oyunu ekran görüntüsü analizi ile kesmek C#
- 8. Bir web sitesinde kesmek girişimleri nasıl izlenir
- 9. Bu bağlantıyı bir düğme
- 10. Bir bağlantıyı tıklatıp jquery
- 11. Dosyalara gezinirken yetkisiz hata
- 12. Bot framework v3 yetkisiz
- 13. Uzak sunucu bir hata verdi: (401) Yetkisiz
- 14. Bir gruptaki raporlara yetkisiz erişim güç durumu
- 15. RMySQL: Sapsız bir bağlantıyı kapatma
- 16. Normal bir bağlantıyı kullanarak Ember
- 17. WCF REST Hizmet - 401 Yetkisiz
- 18. Heyecan Girişi: 401 Yetkisiz hata
- 19. Hadoop IOException oturum açma yetkisiz
- 20. HTML/CSS kesmek için overflow-x: auto & overflow-y: görünür?
- 21. iOS 7, aramaları kesmek için özel API CTCallDisconnect çalışmıyor
- 22. Bootstrap 3 bir satırın içindeki metinleri duyarlı bir şekilde kesmek
- 23. MS Access'in bir C# dll tarafından sağlanan bağlantıyı yeniden kullanması için ne gerekir?
- 24. Sharepoint'te bir 401 (Yetkisiz erişim) istisnası nasıl yükseltilir?
- 25. nsis kaldırıcı bağlantıyı kaldırmıyor
- 26. OpenFire Sunucu XMPP için bağlantıyı kontrol edin
- 27. JavaFx 8: Bir tarayıcıdaki bir bağlantıyı Uygulama
- 28. Uyarı: kullanılmayan bağlantıyı kapatın n
- 29. Apache shiro'daki farklı roller için farklı yetkisiz URL'ler nasıl kullanılır?
- 30. Bu bağlantıyı iletici
TCP bağlantı kesintilerini hassas bir şekilde işlemek için tasarlanmıştır. TCP'nin kaybolmuş bağlantılardan kurtulma yeteneği bir özellik değil, bir hatadır. Başka bir şekilde ifade etmek gerekirse: herhangi bir iletişim yoksa, * bağlantı kesilmez *. Diğer tarafın hala hayatta olup olmadığını bilmeniz gerektiğinde geleneksel çözüm, protokole periyodik bir kalp atışı eklemektir: başka hiçbir şey yapmayan, diğer tarafın hala yanıt yoluyla var olduğunu doğrulayan bir operasyon. Böyle bir işlem yoksa, insanlar bazen sıfır bayt yazıyor, ancak bu tam olarak güvenilir değil. –