Sadece benim mi, yoksa JavaDoc'un ServerSocket api altında bir yöntem belirlediğini fark etmedi, bu da sunucu kutusunun kapalı durumuna bağlı olarak bir boole elde etmemize olanak tanıyor mu?
sadece döngü birkaç saniyede bunun durumunu kontrol etmek edebilirsiniz:
if(!serverSocket.isClosed()){
// whatever you want to do if the serverSocket is connected
}else{
// treat a disconnected serverSocket
}
DÜZENLEME: Sadece sorunu tekrar okuyarak, sadece sürekli bağlantıları için ve istemci eğer Sunucunun aramasını gerektiren görünüyor bağlantıyı keser, istemci yeniden bağlanmaya çalıştığında yeniden algılayabilmelidir. ilk etapta çözümünüz değil mi?
bir istemci bağlantısı alır kez, bir iş parçacığı nesnesine geçmek ve asenkron olarak işletmek için başlatması gerektiğini, dinliyor bir sunucu var. Ardından sunucu yeni bağlantıları dinlemeye geri dönebilir. Eğer istemcinin bağlantısı kesilirse, başlatılan iş parçacığı ölmeli ve yeniden bağlandığında, yeni bağlantıyı işlemek için yeni bir iş parçacığı başlatılır.
Jenkov bu uygulamanın büyük bir örnek sunmaktadır.
'Kapalı soket', * siz * eşin bağlantıyı kapattığını değil, soketi kapattığınız anlamına gelir. EOSis ile karşılaşıldığında belirtilen EOFException dışındaki tüm readXXX() yöntemleri. – EJP