संपादित करें: जैसा कि नीचे टिप्पणी में बताया गया है, अपने मूल दावे एक 64K बंदरगाहों की संख्या के आधार सीमा नहीं है कि वह सही नहीं है, लेकिन वहाँ सॉकेट की संख्या पर एक 32K सीमा संभालती है, इसलिए मेरी सुझाया गया डिजाइन मान्य है।
एक विशिष्ट टीसीपी/आईपी सर्वर डिज़ाइन के साथ, आप एक साथ खुले कनेक्शन की संख्या में सीमित हैं। सर्वर में एक सुनना बंदरगाह होता है, और जब कोई क्लाइंट उससे कनेक्ट होता है तो सर्वर एक स्वीकार्य कॉल करता है, और यह शेष कनेक्शन के लिए एक यादृच्छिक बंदरगाह पर एक नई सॉकेट बनाता है।
64K से अधिक कनेक्शन को संभालने के लिए मुझे लगता है कि आपको इसके बजाय यूडीपी का उपयोग करने की आवश्यकता है। सर्वर को सुनने के लिए आपको केवल एक बंदरगाह की आवश्यकता है, और आपको प्रत्येक क्लाइंट के लिए अलग पोर्ट रखने के बजाय पैकेट डेटा में 32-बिट क्लाइंट आईडी का उपयोग करके कनेक्शन प्रबंधित करने की आवश्यकता है। 32-बिट क्लाइंट आईडी क्लाइंट का आईपी पता हो सकता है, और क्लाइंट सर्वर से वापस आने वाले संदेशों के लिए ज्ञात यूडीपी पोर्ट पर सुन सकता है। वह बंदरगाह केवल एकमात्र होगा जिसे फ़ायरवॉल पर खोलने की जरूरत है।
इस दृष्टिकोण के साथ, आपकी एकमात्र सीमा यह है कि आप कितनी जल्दी यूडीपी संदेशों को संभालने और जवाब दे सकते हैं। लाखों ग्राहकों के साथ, यहां तक कि दुर्लभ ट्रैफिक आपको बड़ी स्पाइक्स दे सकता है, और यदि आप पैकेट को पर्याप्त तेज़ी से नहीं पढ़ते हैं तो आपकी इनपुट कतार भर जाएगी और आप पैकेट छोड़ना शुरू कर देंगे। सी 10 के पेज ग्रेग अंक आपको इसके लिए रणनीतियों देगा।
क्या यह टीसीपी होना चाहिए? यदि यातायात कम है, तो सभी कनेक्शनों को ट्रैक करने की लागत बेकार हो सकती है। और क्या आप थोड़ा सा विस्तार कर सकते हैं कि सर्वर क्या करेगा? सक्रिय सक्रिय रूप से उपयोग किए जाने वाले लाख सक्रिय कनेक्शन मेरे लिए संदिग्ध प्रतीत होते हैं। – VladV