c - एक ही मशीन पर यूडीपी सॉकेट के माध्यम से डेटा भेज रहा है विश्वसनीय?




windows sockets (4)

यदि मैं इंटरप्रोसेस संचार के लिए यूडीपी सॉकेट का उपयोग करता हूं, तो क्या मैं उम्मीद कर सकता हूं कि सभी प्रक्रियाओं को उसी प्रक्रिया में अन्य प्रक्रिया द्वारा प्राप्त किया जाता है?

मुझे पता है कि सामान्य रूप से यूडीपी के लिए यह सच नहीं है।


नहीं, स्थानीय सॉकेट के साथ भी ऐसी कोई गारंटी नहीं है। यदि आप आईपीसी तंत्र चाहते हैं जो ऑर्डर डिलीवरी में है तो आप पॉप-अप popen() साथ पूर्ण-डुप्लेक्स पाइप का उपयोग कर सकते हैं। यह बाल प्रक्रिया में एक पाइप खुलता है जो या तो मनमाने ढंग से पढ़ या लिख ​​सकता है। यह इन-ऑर्डर डिलीवरी की गारंटी देगा और आप इस एप्लिकेशन के निर्माण के तरीके के आधार पर सिंक्रोनस या एसिंक्रोनस I / O ( select() या poll() ) के साथ उपयोग किया जा सकता है।

यूनिक्स पर अन्य विकल्प हैं जैसे यूनिक्स डोमेन सॉकेट या सिस्टम वी संदेश कतार (जिनमें से कुछ तेज़ हो सकते हैं) लेकिन एक पाइप से पढ़ने / लिखना मृत सरल और काम करता है। बोनस के रूप में अपनी सर्वर प्रक्रिया का परीक्षण करना आसान है क्योंकि यह सिर्फ स्टडीओ से पढ़ रहा है और लिख रहा है।

खिड़कियों पर आप नामांकित पाइप्स देख सकते हैं, जो उनके यूनिक्स नाम से कुछ अलग तरीके से काम करते हैं लेकिन इस तरह के इंटरप्रोसेस संचार के लिए उपयोग किया जाता है।


नहीं। मुझे इससे पहले काटा गया है। आप सोच सकते हैं कि यह संभवतः कैसे असफल हो सकता है, लेकिन आप लंबित पैकेट भरने वाले बफर के मुद्दों में भाग लेंगे, और इसके परिणामस्वरूप पैकेट गिरा दिए जाएंगे। नेटवर्क सबसिस्टम कैसे पैकेट ड्रॉप करता है कार्यान्वयन-निर्भर है और कहीं भी निर्दिष्ट नहीं है।


संक्षेप में, नहीं। आपको यूडीपी सॉकेट पर प्राप्त डेटा के आदेश के बारे में कोई भी अनुमान नहीं लगाया जाना चाहिए, यहां तक ​​कि लोकहोस्ट पर भी। यह काम कर सकता है, ऐसा नहीं हो सकता है, और इसकी गारंटी नहीं है।


सॉकेट इंटरफ़ेस शायद डेटा के उत्प्रेरक को नियंत्रित नहीं करेगा, इसलिए यदि आपके पास उच्च स्तरीय प्रवाह नियंत्रण है तो आपको शायद विश्वसनीय ट्रांसमिशन दिखाई देगा, लेकिन हमेशा यह संभावना है कि एक स्मृति क्रंच अभी भी गिराए गए डेटाग्राम का कारण बन सकता है।

प्रवाह नियंत्रण के बिना डेटाग्राम के लिए कर्नेल मेमोरी आवंटन सीमित है, मुझे लगता है कि यह नेटवर्क यूडीपी के रूप में अविश्वसनीय होगा।





winsock