मैं जावा सॉकेट एपीआई के साथ कुछ मुद्दों में चल रहा हूं। मैं वर्तमान में अपने खेल से जुड़े खिलाड़ियों की संख्या प्रदर्शित करने की कोशिश कर रहा हूं। यह निर्धारित करना आसान है कि खिलाड़ी कब जुड़ा है। हालाँकि, यह निर्धारित करना अनावश्यक रूप से कठिन लगता है कि किसी खिलाड़ी ने सॉकेट एपीआई का उपयोग करके डिस्कनेक्ट किया है या नहीं।
isConnected()
एक सॉकेट पर कॉल करना जो दूर से डिस्कनेक्ट हो गया है, हमेशा वापस लौटने लगता है true
। इसी तरह, isClosed()
एक सॉकेट पर कॉल करना जो दूर से बंद हो गया है, हमेशा वापस लौटने लगता है false
। मैंने पढ़ा है कि वास्तव में यह निर्धारित करना है कि सॉकेट बंद किया गया है या नहीं, डेटा आउटपुट स्ट्रीम को लिखा जाना चाहिए और एक अपवाद को पकड़ा जाना चाहिए। यह इस स्थिति को संभालने के लिए एक बहुत अशुद्ध तरीका लगता है। हमें बस लगातार नेटवर्क पर एक कचरा संदेश को स्पैम करना होगा जब एक सॉकेट बंद हो गया था।
क्या कोई और उपाय है?