सॉकेट प्रोग्रामिंग में, आप एक सुनने वाला सॉकेट बनाते हैं और फिर कनेक्ट होने वाले प्रत्येक क्लाइंट के लिए, आपको एक सामान्य स्ट्रीम सॉकेट मिलता है जिसका उपयोग आप क्लाइंट के अनुरोध को संभालने के लिए कर सकते हैं। ओएस पर्दे के पीछे आने वाले कनेक्शनों की कतार का प्रबंधन करता है।
दो प्रक्रियाएँ एक ही समय में एक ही पोर्ट से नहीं जुड़ सकती हैं - वैसे भी, डिफ़ॉल्ट रूप से।
मैं सोच रहा था कि क्या कोई रास्ता है (किसी भी प्रसिद्ध ओएस, विशेष रूप से विंडोज पर) एक प्रक्रिया के कई उदाहरणों को लॉन्च करने के लिए, जैसे कि वे सभी सॉकेट से बांधते हैं, और इसलिए वे प्रभावी रूप से कतार साझा करते हैं। प्रत्येक प्रक्रिया उदाहरण तब एकल पिरोया जा सकता है; नया कनेक्शन स्वीकार करते समय यह अवरुद्ध हो जाएगा। जब कोई ग्राहक जुड़ा होता है, तो निष्क्रिय प्रक्रिया में से एक उस ग्राहक को स्वीकार कर लेता है।
यह प्रत्येक प्रक्रिया को एक बहुत ही सरल, एकल-थ्रेडेड कार्यान्वयन करने की अनुमति देगा, जब तक कि स्पष्ट साझा की गई मेमोरी के माध्यम से कुछ भी साझा न किया जाए, और उपयोगकर्ता अधिक उदाहरणों को शुरू करके प्रसंस्करण बैंडविड्थ को समायोजित करने में सक्षम होगा।
क्या ऐसी सुविधा मौजूद है?
संपादित करें: उन लोगों के लिए जो "थ्रेड्स का उपयोग क्यों नहीं करते?" जाहिर है धागे एक विकल्प हैं। लेकिन एक ही प्रक्रिया में कई थ्रेड्स के साथ, सभी ऑब्जेक्ट्स साझा करने योग्य होते हैं और यह सुनिश्चित करने के लिए बहुत सावधानी बरतनी होती है कि ऑब्जेक्ट्स या तो साझा नहीं किए जाते हैं, या केवल एक समय में एक थ्रेड के लिए दिखाई देते हैं, या बिल्कुल अपरिवर्तनीय हैं, और सबसे लोकप्रिय भाषाएं हैं और रनटम्स में इस जटिलता के प्रबंधन के लिए अंतर्निहित समर्थन का अभाव है।
एक समान कार्यकर्ता प्रक्रियाओं को शुरू करने से, आपको एक समवर्ती प्रणाली मिलेगी जिसमें डिफ़ॉल्ट कोई साझाकरण नहीं है, जिससे एक सही और मापनीय कार्यान्वयन का निर्माण करना बहुत आसान हो जाता है।