मैं प्रोग्रामिंग और एएसपी नेटवर्क प्रोग्रामिंग में बहुत नया हूं इसलिए अगर यह बेवकूफ है, तो कृपया बहुत मुश्किल से परेशान न करें, धन्यवाद।यूडीपी और सॉकेट, रिकवर() लौटने -1 और संसाधन अस्थायी रूप से अनुपलब्ध
मेरे पास क्लाइंट और सर्वर सी में आरेख (यूडीपी) के साथ संचार कर रहा है। क्लाइंट 5 संदेश भेजता है और संदेश प्राप्त करने पर, सर्वर संदेश भेजता है। संदेश प्राप्त करना और भेजना तब तक बढ़िया है जब तक कि क्लाइंट ने संदेश प्राप्त नहीं कर लिया हो। सर्वर के बाद सभी संदेश वापस भेजने के बाद, यह बंद() का उपयोग कर समाप्त होता है। तो ग्राहक से recvfrom() 0 वापस करना चाहिए, है ना?
मानते हैं कि सर्वर से तरफ() को 0 (0) को बंद कर देना चाहिए, यह त्रुटि -1 अस्थायी रूप से अनुपलब्ध है। सर्वर से बंद सॉकेट के लिए यह संसाधन संदर्भ है? या यह बफर या कुछ से बाहर चलने की तरह कुछ और पूरी तरह से अलग है (जो मुझे नहीं लगता सच है)?
और मेरी धारणा यह सोचते हैं गलत था और -1 दिया जाता है क्योंकि सर्वर समाप्त, मैं शायद
if(SOMEMACRO)
do something
साथ त्रुटि संभाल चाहिए, लेकिन मैं यह कैसे पता कि क्या SOMEMACRO
है? मैं त्रुटि को मुद्रित करता हूं लेकिन यह कहता है कि संसाधन अस्थायी अनुपलब्ध है और recvfrom() विवरण अनावश्यक संसाधन के बारे में उल्लेख नहीं है ..?
बीटीडब्ल्यू यह एक गैर-अवरुद्ध सॉकेट है, अगर इससे कोई फर्क पड़ता है क्योंकि मैंने पढ़ा है कि यदि O_NONBLOCK सेट है और कोई संदेश उपलब्ध नहीं है, तो यह EAGAIN या EWOULDBLOCK में त्रुटि सेट करेगा। O_NONBLOCK सेट नहीं है लेकिन MSG_DONTWAIT सेट है। क्या वे मूल रूप से वही बात हैं जहां O_NONBLOCK सामान्य फ़ाइल वर्णनकर्ताओं के लिए है और MSG_DONTWAIT सॉकेट विशिष्ट है ??
मेरा दिमाग अब इतना अच्छा काम नहीं कर रहा है, अगर कोई मुझे प्रबुद्ध कर सकता है और स्पष्टीकरण देता है कि मेरा भ्रम क्या है, तो मैं इसकी सराहना करता हूं। धन्यवाद!
पढ़ने के लिए कोई डेटा नहीं है, तो यदि आप यूडीपी का उपयोग कर रहे हैं, तो क्या कभी भी 0 वापस लौटाएगा? चूंकि आप कभी नहीं जानते कि सहकर्मी ने व्यवस्थित शट डाउन किया है या नहीं? –
@ फैंटास्टिक फूरियर - यूडीपी वास्तव में एक डाटाग्राम भेज सकता है जो सिर्फ आईपी और यूडीपी हेडर है लेकिन कोई डेटा पेलोड नहीं है। यह पूरी तरह से कानूनी है और 0 बाइट्स के पढ़ने की तरह आपको देखेगा। – Duck
@ फैंटास्टिक फूरियर - कड़ाई से बोलते हुए यूडीपी में कोई "कनेक्शन" नहीं है, वहां बंद करने, व्यवस्थित या अन्यथा कुछ भी नहीं है। – Duck