2010-07-06 10 views
7

सॉकेट को कॉल करते समय। केवल सॉकेट ऑब्जेक्ट्स रखने के लिए सत्यापित सूचियों के साथ चयन करें, मुझे कभी-कभी त्रुटि An operation was attempted on something that is not a socket त्रुटि मिलती है। मुझे घटना के लिए एक पैटर्न नहीं मिल रहा है।सॉकेट। रिटर्न त्रुटि का चयन करें "सॉकेट नहीं होने पर किसी ऑपरेशन का प्रयास किया गया था"

Socket.Select(readList, writeList, null, timeOut > 0 ? timeOut : 0); 
+0

निश्चित रूप से पर्यावरण, KB लेखों का पीछा करें। –

+4

यह इस महीने मैंने देखा है सबसे अच्छी त्रुटि है। कंप्यूटर को स्वीकार करने में बहुत नम्रता होती है, यह नहीं जानता कि क्या हो रहा है। –

+0

मैंने व्यवस्थापक अधिकारों के साथ प्रोग्राम चलाकर इस समस्या को "मेरे मामले में" हल किया। – LikePod

उत्तर

7

यह पता चला है कि सॉकेट बंद थे। यह सिर्फ एक बंद सॉकेट की वजह से उत्पन्न होने के लिए .NET के लिए वास्तव में गूंगा त्रुटि है।

+3

क्या यह सुरक्षा समस्या नहीं है? सॉकेट क्लास ने बंद बंद संभाल पर मूल कॉल किया! यह एक हैंडल रीसाइक्लिंग हमला है। – usr

+0

मुझे यह ऐप के साथ "अचानक" मिला है जो अक्सर कनेक्ट होने में विफल रहता है क्योंकि मैंने हैंडहेल्ड से संपर्क खो दिया है। मैं अपने पालना में हैंडहेल्ड फिर से "सीट" कर रहा हूं, यह डेस्कटॉप द्वारा फिर से "देखा" है, और सब ठीक है - इस बार को छोड़कर, जब मुझे यह मिला कि "एक सॉकेट नहीं है जो सॉकेट नहीं है" त्रुटि। –

+0

प्रोजेक्ट और वीएस 2008 को बंद करना और फिर से खोलना इसे दूर चला गया। पिताजी जला वार्मिन! मेरा मतलब है gremlins! –

2

मैंने एमएसडीएन पर एक खोज की और कुछ हिट प्राप्त की। here & here

हालांकि, मैं WinSock में लेकिन जिस तरह से Select यूनिक्स पर कुछ भी विकसित नहीं किया है कार्यान्वित किया जाता है रीसेट करने fd_set हर Select रिटर्न की आवश्यकता है। शायद यह भी चयन के WinSock कार्यान्वयन पर लागू होता है। यदि ऐसा है, तो readList, writeListSelect के बाद आपके द्वारा उल्लिखित त्रुटि की ओर अग्रसर हो सकता है। सिर्फ एक विचार।

+0

अच्छे विचार, लेकिन हम प्रत्येक बार 'चयन' को कॉल करने से पहले सूचियों को पुन: प्रारंभ करते हैं। हालांकि धन्यवाद। –

+0

ओह..और एमएसडीएन लिंक भी ऐसी स्थिति को इंगित नहीं करते हैं जो आपके पास हो सकता है? –

+0

नहीं, क्षमा करें। हालांकि धन्यवाद। –

0

मेरी मेजबान मशीन फ़ायरवॉल चालू होने पर मुझे यह समस्या है। मैं अपनी कंपनी के नियमों के कारण मेरी फ़ायरवॉल को अक्षम नहीं कर सकता। इसलिए मैंने संचार के लिए अपनी मेजबान मशीन में इनबाउंड नियम जोड़े हैं, इसके बाद यह ठीक काम करता है।

संबंधित मुद्दे