यह और अधिक एक अच्छा जवाब की तुलना में एक टिप्पणी की तरह है: सवाल है, (मैं नहीं बल्कि एक टिप्पणी से एक के लिए ऊपर जवाब जोड़ना होगा, लेकिन मैं प्रतिनिधि नहीं है)
के रूप में मैंने इसे पढ़ा, "है क्या मैं सॉकेट पर एक स्ट्रीम बंद कर सकता हूं और फिर उसी सॉकेट पर एक स्ट्रीम खोल सकता हूं? "... लेकिन लोग इसका जवाब दे रहे हैं:" मुझे अपनी सॉकेट को साफ तरीके से कैसे बंद करना चाहिए? "... जो सवाल नहीं पूछा जा रहा है ।
पूछे जाने वाले प्रश्न का उत्तर "नहीं" है। जब आप स्ट्रीम बंद करते हैं, तो आप सॉकेट बंद करते हैं।
(मुझे समझ में आता है कि, कम से कम एक मामले में, कोई इस सवाल से क्यों पूछ सकता है। जब आप सॉकेट पर जावा प्रॉपर्टी स्ट्रीम कर रहे होते हैं तो प्राप्त करने वाले अंत को गुणों के अंत को पहचानने के लिए ईओएफ देखना होता है - रिसीवर के लिए ईओएफ को देखने के लिए प्रेषक को स्ट्रीम/सॉकेट बंद करना होगा। लेकिन, अगर आपके पास उस सॉकेट पर एक कमांड/प्रतिक्रिया प्रोटोकॉल चल रहा है, तो आप इसे बंद नहीं करना चाहते हैं या आप उस चैनल को खो देंगे जिसे आप प्रतिक्रिया भेजना चाहते हैं पर।इसे संभालने के लिए Java streaming Properties over Socket देखें)
देखें http://stackoverflow.com/questions/484925/does-closing-the-bufferedreader-printwriter-close-the-socket-connection – Istao