विंडोज पर, एक सॉकेट एक संचार समापन बिंदु और एक प्रक्रिया के बीच एक कड़ी है। यही कारण है, जब आप एक सॉकेट की नकल करते हैं, तो आप दो सॉकेट के साथ हवा देते हैं लेकिन केवल एक समापन बिंदु। यही कारण है कि आप एक सॉकेट को दूसरी प्रक्रिया में एक नया सॉकेट बनाए बिना एक प्रक्रिया से दूसरी प्रक्रिया में पारित नहीं कर सकते।
यदि प्रक्रिया मौजूद नहीं है, तो इसके सॉकेट आवश्यक रूप से मौजूद हैं। इसे धारण करने की प्रक्रिया के बिना सॉकेट की कोई अवधारणा नहीं है। यही कारण है कि विंडोज कर्नेल ड्राइवर जो कर्नेल स्तर पर सॉकेट बनाना चाहते हैं, उन्हें सॉकेट के लिए एक प्रक्रिया निर्दिष्ट करनी चाहिए या फ़ंक्शन को उस प्रक्रिया संदर्भ से कॉल करना चाहिए जो सॉकेट का मालिक हो सकता है। (या वे सॉकेट्स का उपयोग किए बिना सीधे समापन बिंदुओं में हेरफेर कर सकते हैं।)
आपका प्रश्न वास्तव में सॉकेट्स के बारे में नहीं है, बल्कि संचार के बारे में है। सॉकेट में इसके संचार समापन बिंदु का संदर्भ होता है। जब सॉकेट चला जाता है, तो संदर्भ की गिनती गिर जाती है। यदि यह शून्य से टकराता है, तो इसे जल्द से जल्द हटा दिया जाएगा क्योंकि यह अनुमति दी जाती है कि संचार प्रोटोकॉल की आवश्यकताएं जो समापन बिंदु के साथ जुड़ी हुई हैं। टीसीपी में एक TIME_WAIT स्थिति है, जिसके दौरान किसी भी "बचे हुए" पैकेट को संभालने के लिए समापन बिंदु को चारों ओर रखा जाना चाहिए।