मैं अभी भी इंडी के लिए उपयोग कर रहा हूं, विशाल क्षमताओं वाले बहु-थ्रेडेड सॉकेट सिस्टम होने के नाते। मैंने देखा है कि बड़ी चीजों में से एक यह है कि सर्वर सॉकेट में कितनी अलग बाइंडिंग हो सकती है। उदाहरण के लिए, आपके पास एक ही आईपी पते पर 3 बंदरगाहों के लिए 3 बाइंडिंग हो सकती हैं। मैं डेल्फी एक्सई 2 पर इंडी 10 का उपयोग कर रहा हूं।इंडी सर्वर के एकाधिक बाइंडिंग को अलग सॉकेट के रूप में उपयोग करना?
मैं कर रहा हूँ मेरा एक पुरानी प्रणाली है जो ScktComps
से पुराने जमाने TServerSocket
और TClientSocket
घटकों का उपयोग करता है और फिर से निर्माण इंडी TIdTCPServer
और TIdTCPClient
साथ इसे फिर से कर रही है। पुरानी प्रणाली में वास्तव में प्रत्येक छोर पर 3 पूरी तरह से अलग सर्वर/क्लाइंट सॉकेट होते हैं, प्रत्येक सॉकेट एक विशिष्ट उद्देश्य की सेवा करता है, और साथ मिलकर काम करता है - जैसे कि एफ़टीपी बाइनरी डेटा के लिए एक सॉकेट का उपयोग करता है और कमांड के लिए अन्य सॉकेट का उपयोग करता है।
क्या इन बाइंडिंग का उपयोग करके एक ही घटक के भीतर तीन अलग सर्वर/क्लाइंट सॉकेट की नकल करना संभव है? यह बहुत अच्छा होगा अगर मैं 3 बंदरगाहों के साथ केवल एक सर्वर सॉकेट घोषित कर सकता हूं, और क्लाइंट पर, सर्वर पर 3 अलग-अलग बंदरगाहों से जुड़ा हुआ है। मैं बस इतना करना चाहता हूं कि 3 अलग सर्वर/क्लाइंट सॉकेट घटकों को बनाने की आवश्यकता को खत्म कर दें और उन्हें एक साथ जोड़ दें।
बहुत बढ़िया, बस सोच प्रत्येक बंदरगाह उसी संदर्भ सूत्र में अपने स्वयं के धागे या संभवत: सभी 3 उपयोग कर रहा है? –
'बाइंडिंग्स' संग्रह में प्रत्येक प्रविष्टि अपने स्वयं के धागे में अपने संबंधित बंदरगाह पर इनबाउंड कनेक्शन स्वीकार करती है। प्रत्येक स्वीकृत ग्राहक कनेक्शन तब भी अपने धागे में चलता है। इसलिए यदि आपके पास 3 'बाइंडिंग्स प्रविष्टियां और 3 कनेक्टेड क्लाइंट हैं, तो यह 6 थ्रेड चल रहा है। –
बिल्कुल सही, यह वही है जो मैं चाहता था। –