2010-12-11 9 views
16

मैंने सी # में एक आईपी मल्टीकास्टिंग एप्लिकेशन लिखा है। यह ठीक संकलित है, लेकिन क्रम में इस लाइन:"सॉकेट पर एक ऑपरेशन निष्पादित नहीं किया जा सका क्योंकि सिस्टम में पर्याप्त बफर स्पेस की कमी थी या क्योंकि कतार पूर्ण थी"

sock.SetSocketOption(SocketOptionLevel.IP, 
        SocketOptionName.AddMembership, 
        new MulticastOption(IPAddress.Parse("224.100.0.1"))); 

एक बिना क्रिया सॉकेट अपवाद फेंकता है:

एक सॉकेट पर कोई कार्रवाई नहीं हो सकी क्योंकि इस प्रणाली का अभाव है पर्याप्त बफर अंतरिक्ष या क्योंकि एक कतार थी पूर्ण

मैंने Google में त्रुटि की खोज की और लोगों ने 3 जीबी स्विच (मेरा ओएस विंडोज 7 है) को हटाने का सुझाव दिया है जो सक्षम हो सकता है। मैंने ऐसा किया, लेकिन फिर भी वही त्रुटि मिलती है। मामला क्या हो सकता है?

उत्तर

6

ऐसा लगता है जब आप संसाधनों (सॉकेट?) या स्मृति से बाहर निकलते हैं। कमांड प्रॉम्प्ट रन पर: netstat -ab

मुझे यकीन नहीं है कि सॉकेट सीमा क्या है। मैं वर्तमान में इस तरह एक मुद्दा लड़ रहा हूँ। सॉकेट सीमा पर

नोट्स: http://support.microsoft.com/kb/196271

3

मैं इस एक ही गलती है, लेकिन केवल Windows 7 पर अगर मैं यह काम करता है Vista पर मेरी एक ही बहुस्त्र्पीय अनुप्रयोग चलाने के। यह ऐप से व्यवहार को अनवरोधित करने के लिए एक सिस्टम संवाद पॉप अप करता है, लेकिन यह चलता है। यह Win7 में शायद एक बदली नेटवर्किंग अनुमतियाँ चीज है। मैं अभी भी एक समाधान की तलाश में हूँ। अगर कोई और एक पाता है, तो कृपया पोस्ट करें।

4

यदि संसाधन सीमा पार हो रही है तो आप इस त्रुटि संदेश का सामना कर सकते हैं। System.Net.Sockets.Socket लागू IDisposable। क्या आप उनके साथ समाप्त होने के बाद अपने सॉकेट का निपटान कर रहे हैं?

कचरा कलेक्टर के लिए उन्हें चारों ओर छोड़कर संसाधनों को रिसाव करने का एक शानदार तरीका है।

+0

मुझे HTTP पोस्ट के साथ यह समस्या है। त्वरित उत्तराधिकार में उनमें से बड़ी संख्या में ऐसा करना आईआईएस को अधिभारित करना प्रतीत होता है, भले ही मैं उन्हें 'उपयोग' के साथ ठीक से निपट रहा हूं। विचार? – jocull

+0

@jocull आपका आवेदन कहां है? आईआईएस से बात कर रहे क्लाइंट मशीन पर या आईआईएस द्वारा होस्ट किया जा रहा है? –

+2

http://smallvoid.com/article/winnt-tcpip-max-limit.html ऑपरेटिंग सिस्टम द्वारा लगाए गए सीमाओं की व्याख्या करने में भी मदद कर सकता है। –

7

यह पोर्ट थकावट हो सकता है। जब एप्लिकेशन शॉर्ट टाइम फ्रेम में बहुत से आउटगोइंग कनेक्शन बनाता है या आउटगोइंग कनेक्शन ठीक तरह से निपटता नहीं है - तो आप बंदरगाहों से बाहर निकलते हैं।

Here बल्कि लंबा स्पष्टीकरण और एक तरह से समस्या (2 वर्ष अपटाइम के साथ) हल मुद्दा

1

मैं विंडोज सर्वर 2008 को एक ही त्रुटि थी मेरे मामले में निदान करने के लिए करने के लिए, के बाद पुनः आरंभ सर्वर कड़ी है।

0

देखें - http://support.microsoft.com/kb/2553549 और https://support.microsoft.com/en-us/kb/929851 (आप निर्धारित करते हैं कि आप कितने डायनामिक आउटबाउट बंदरगाह चाहते हैं)। इस दूसरे आलेख के साथ, TcpTimedWaitDelay को 30 के दशमलव मान को डवर्ड करने के लिए सेट करें। इसलिए जब सिस्टम को सॉकेट जारी किया जाता है, तो स्पष्ट तेज़ी से। देखें - technet.microsoft.com/en-us/library/cc938217.aspx

0

स्थानीय MySQL डेटाबेस से कनेक्ट करने का प्रयास करते समय मेरे पास एक ही समस्या (a.k.a त्रुटि 10055) है। मेरा मानना ​​है कि आपको ऑपरेटिंग सिस्टम की अनुमति देने वाले गतिशील बंदरगाहों की संख्या बढ़ाने की आवश्यकता है।

मेरे लिए काम किया गया समाधान here मेरा मानना ​​है कि यह आपकी मदद कर सकता है, क्योंकि आप विंडोज का उपयोग कर रहे हैं। शुभकामनाएँ!

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

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