मैं वी.एस. 2008ब्लाक एक अवरोधित विनसॉक स्वीकार() कॉल
तहत विनसॉक उपयोग कर रहा हूँ मैं एक धागा एक अवरुद्ध कॉल के माध्यम से स्वीकार कर भेजे टीसीपी कनेक्शन अनुरोध करने के लिए समर्पित स्वीकार करना होगा()। जब मेरे ऐप को बंद करने का समय आता है, तो मुझे किसी भी तरह से इस थ्रेड को अनवरोधित करने की आवश्यकता होती है ताकि यह अपना शट डाउन काम कर सके और बाहर निकल सके। क्या कोई तरीका है कि मैं स्वीकार कर सकता हूं()?
अगर मैं स्वीकार करने के लिए कोई रास्ता नहीं है तो मैं एक और प्रश्न पोस्ट करूंगा()। यह सवाल है: यदि मैं स्वीकृति() पर अवरुद्ध धागे की कड़ी हत्या करता हूं, तो क्या कुछ बुरा होगा (ओएस डेटा संरचनाओं का भ्रष्टाचार इत्यादि)? यदि आप एक "अभी नहीं" ध्वज की जाँच, और जब यह timesout - -
धन्यवाद, डेव
क्या आप जिस सॉकेट को अवरुद्ध कर रहे हैं उसे बंद नहीं कर सकते? इससे 'स्वीकार() 'वापस आ जाएगा। – tribeca
आईएमई, स्वीकृति() अवरुद्ध होने पर बस ऐप से बाहर निकलना ठीक है। ओएस साफ हो जाएगा और कुछ भी टूटा नहीं जाएगा। यदि आप वास्तव में, बिल्कुल स्पष्ट रूप से साफ करना है, तो अन्य पोस्टर द्वारा सुझाए गए अनुसार, किसी अन्य थ्रेड से सॉकेट को बंद करें। WinSock में –