मेरा चैट एप्लिकेशन किसी सर्वर से कनेक्ट होता है और जानकारी उपयोगकर्ता द्वारा भेजी जाती है/प्राप्त की जाती है। जब कनेक्शन बदलता है, जैसे कि 3 जी-> वाईफाई, वाईफाई-> 3 जी, डेटा कनेक्शन खोना आदि, socket कभी-कभी डिस्कनेक्ट करने से पहले उम्र के लिए जुड़ा रहता है। इस समय के दौरान, यह कहना असंभव है कि कनेक्शन अभी भी सक्रिय है या नहीं, ऐसा लगता है जैसे संदेशों को ठीक से भेजा जा रहा है। अन्य बार, एक संदेश भेजते समय, यह एक आईओ त्रुटि फेंक देगा और डिस्कनेक्ट होगा।कनेक्टिविटी में परिवर्तन होने पर सॉकेट डिस्कनेक्ट नहीं होता
कनेक्शन परिवर्तनों का पता लगाने और उचित रूप से पुन: कनेक्ट करने के लिए कोड को लागू करने के अलावा, क्या कनेक्टिविटी में परिवर्तन होने पर सॉकेट तुरंत आईओ अपवाद फेंकना संभव है?
संपादित करें:
Socket sock = new Socket();
sock.connect(new InetSocketAddress(getAddress(), getPort())), getTimeout());
//get bufferedReader and read until BufferedReader#readLine() returns null
मैं setSoTimeout का उपयोग नहीं के रूप में डेटा दूरस्थ सर्वर के विन्यास पर निर्भर समय की लंबी अवधि के लिए स्थानांतरित नहीं किया जा सकता है: मैं निम्नलिखित कोड का उपयोग कर जोड़ने हूँ।
फिर http://stackoverflow.com/questions/969866/java-detect-lost-connection http://stackoverflow.com देखें/प्रश्न/155,243/क्यों है यह असंभव-बिना-प्रयास कर-कब करने वाली का पता लगाने-कि-टीसीपी-सॉकेट-था-अनुग्रह –