2010-03-28 11 views
11

मैं एक स्ट्रीमिंग सर्वर और एक फ्लैश क्लाइंट के बीच एक जावा इंटरफ़ेस विकसित कर रहा हूं। मैंने देखा कि यूडीपी डेटाग्राम मेरे इंटरफ़ेस तक ऑर्डर कर सकते हैं भले ही दोनों प्रक्रियाएं स्थानीय रूप से चल रही हों।स्थानीय स्तर पर चल रही प्रक्रियाओं के साथ भी मुझे यूडीपी डेटाग्राम को ऑर्डर के बाहर क्यों मिलता है?

क्या यह सामान्य है? मैंने सोचा था कि किसी भी राउटर या किसी भी नेटवर्क डिवाइस के माध्यम से कोई डेटाग्राम नहीं जाना है, तो ऐसा नहीं होना चाहिए।

+1

यह एक अच्छा सवाल है, मैं इसके संभावित * कारण * में भी रूचि रखता हूं। प्रत्याशा बिट के लिए –

उत्तर

7

असल में यूडीपी पैकेट के बारे में ऑर्डरिंग और रिसेप्शन की कोई गारंटी नहीं है, भले ही वे स्थानीयहोस्ट पर लोकहोस्ट द्वारा भेजे जाते हैं। सिर्फ इसलिए कि प्रोटोकॉल का विनिर्देश इसके बारे में कुछ भी नहीं दर्शाता है।

के बाद आप उन पर मान्यताओं नहीं कर सकते हैं कि आप ऊपर के पोस्टर के रूप में टीसीपी उपयोग करें या अपने कार्यक्रमों द्वारा नियंत्रित एक क्रम संख्या का उपयोग करके पुनर्व्यवस्था को संभालने के लिए चुनना चाहिए,

8

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

+0

+1। –

2

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

यदि आपको अनुक्रम में उनकी आवश्यकता है, तो टीसीपी आज़माएं।

0

यूडीपी अनुक्रम को बचाने के लिये निर्दिष्ट नहीं है .. सभी ने कहा है, लेकिन यदि कोई मध्यवर्ती राउटर नहीं हैं तो मुझे आपके कोड में एक बग पर भी संदेह होगा।

+7

नहीं। यह संभवतः मल्टीप्रोसेसर पैकेट हैंडलिंग के कारण है। –

+0

कृपया इस टिप्पणी को समझाएं। – EJP

+14

वाह, बस इस टिप्पणी को देखा। आपने मेरा नाम टैग नहीं किया है, इसलिए कोई अधिसूचना नहीं है। वैसे भी: ऑपरेटिंग सिस्टम जो कई कोरों में काम फैलाने से पैकेट हैंडलिंग को तेज करते हैं, ने विभिन्न कोरों पर यूडीपी पैकेट को संसाधित कर दिया है और उन्हें ऑर्डर से बाहर पढ़ने के लिए कतार में रखा है। –