नोट: यह नेटवर्किंग के बारे में एक प्रश्न है, गेमिंग नहीं। मैं एक उदाहरण के रूप में StarCraft का उपयोग कर रहा हूं।
खेल StarCraft (StarCraft 2 नहीं) ऑनलाइन खेलने का समर्थन करता है। एक व्यक्ति होस्ट करता है, और अन्य लोग शामिल होते हैं। यदि मेजबान खेल के दौरान निकलता है, तो खेल मेजबान के बिना अनिश्चित काल तक जारी रह सकता है। वह कैसे काम करता है?
इस परिदृश्य पर विचार करें:
- मैं एक 3 बनाम 3 होस्ट करता हूं। ध्यान दें कि, लोगों को जुड़ने में सक्षम होने के लिए, मेरे राउटर को 6112, टीसीपी और यूडीपी को पोर्ट करने के लिए कॉन्फ़िगर करना होगा ( बर्फ़ीला समर्थन देखें )।
- पांच लोग जुड़ते हैं। हर कोई (खुद शामिल) एक राउटर के पीछे है। मैं खेल शुरू करता हूं।
- खेल में तीन मिनट, लगभग बीस ज़ीलॉट मेरे आधार में डालते हैं। कोई भी मेरी मदद नहीं करता है।
- मेरा आधार समाप्त हो गया है, इसलिए मैं छोड़ देता हूं (खेल आपको कोई विकल्प नहीं देता है)।
- मेजबान के बिना खेल जारी है (घरेलू टीम में दो खिलाड़ी बचे हैं)।
शेष पाँच ग्राहक (जिन्हें 6112 अग्रेषित करने की आवश्यकता नहीं थी) कैसे जुड़े रहेंगे?
यदि मैं सही ढंग से समझता हूं: यदि दो कार्यक्रम एक-दूसरे से बात करना चाहते हैं, तो उनमें से एक को "सर्वर" होना चाहिए और एक पोर्ट पर कनेक्शन के लिए सुनना होगा, जबकि दूसरे को "क्लाइंट" होना चाहिए और उस पर कनेक्शन का अनुरोध करना चाहिए। बंदरगाह। वे बस एक दूसरे को पैकेट भेजना शुरू नहीं कर सकते हैं (और मुझे नहीं पता कि वे कैसे होंगे, अगर दोनों राउटर के पीछे हैं)।
किसी गेम को होस्ट करना एक सर्वर है, जबकि इसमें शामिल होने वाले ग्राहक हैं। यह देखना आसान है कि क्लाइंट सर्वर से संवाद कैसे शुरू कर सकते हैं। मुझे जो नहीं मिलता है वह यह है: क्लाइंट सर्वर के माध्यम से जाने के बिना एक दूसरे के साथ संवाद कैसे शुरू करते हैं? क्या इंटरनेट प्रोटोकॉल एक सर्वर को ग्राहकों के बीच संबंध बनाने की अनुमति देता है?
यह पूरी तरह से संभव है कि, StarCraft के मामले में, गेम ट्रैफिक Battle.net सर्वर के माध्यम से जाता है। StarCraft खेल के दौरान Battle.net के लिए एक कनेक्शन बनाए रखता है (दोस्तों, आदि के संदेशों के लिए)। हालांकि, मुझे संदेह है कि गेम ट्रैफिक इसके माध्यम से जाता है, क्योंकि अगर यह किया जाता है, तो मेजबानों को 6112 को आगे पोर्ट करने की आवश्यकता क्यों होगी?
मेरा प्रश्न है: क्या एक सर्वर, जिसमें कई ग्राहक जुड़े हो सकते हैं, उनके बीच संबंध स्थापित कर सकते हैं?
I host a 3 versus 3. Note that, for people to be able to join, my router has to be configured to port forward 6112, TCP and UDP (see Blizzard Support).
जाहिरा तौर पर यह एक गेम शुरू करने के लिए आवश्यक है ताकि उपयोगकर्ता आपको ढूंढ सकें, लेकिन जुड़े रहने के लिए आवश्यक नहीं है।