2010-07-06 16 views
7

मैं उन कंप्यूटरों के समूह को बनाने के लिए मुड़ने का उपयोग करने की कोशिश कर रहा हूं जो एक बड़े डेटासेट के टुकड़े पर एक प्रोग्राम चलाते हैं।मुड़: एक ग्राहक, कई सर्वर

मेरे "सर्वर" को क्लाइंट से डेटा का एक हिस्सा प्राप्त होता है और उस पर कमांड एक्स चलाता है।

मेरा "क्लाइंट" कई सर्वरों से जुड़ता है जो उन्हें प्रत्येक डेटा का एक हिस्सा देता है और उन्हें बताता है कि कौन से पैरामीटर कमांड एक्स को चलाने के लिए हैं।

मेरे सवाल यह है: वहाँ कई सर्वर से कनेक्ट करने रिएक्टर पाश स्थापित करने के लिए एक तरीका है:

reactor.connectTCP('localhost', PORT, BlastFactory()) 
reactor.run() 

या मैं अपने प्रतिमान में क्लाइंट और सर्वर स्वैप करने के लिए है?

+0

अध्ययन xmlrpclib:

या, सरलतम पर, आप बस ऊपर कई कनेक्शन प्रयास पूरे शो बंद reactor.run() किक, इस तरह से पहले सेट कर सकते हैं। – mcandre

+0

"[जो भी] क्लाइंट से कनेक्ट करें" यह नहीं है कि टीसीपी-आईपी कैसे काम करता है - क्लाइंट कनेक्टिंग करता है, सर्वर कनेक्ट हो जाता है _to_ (आप "सहकर्मी" भी हो सकते हैं जो सर्वर _and_ क्लाइंट दोनों हैं, हालांकि पीयर-टू-पीयर को छोड़कर कुछ लोकप्रिय प्रोटोकॉल ऐसा करते हैं)। –

+0

@ एलेक्स मार्टेलि: यह एक प्रकार का ओ है। मैं अभी भी इस बिंदु पर ग्राहकों और सर्वरों को भ्रमित कर रहा हूं। –

उत्तर

8

बस कई बार connectTCP पर कॉल करें।

चाल, ज़ाहिर है, कि reactor.run() ब्लॉक "हमेशा के लिए" (अपने कार्यक्रम की पूरी रन-टाइम) ताकि आप कि कई बार फोन करने के लिए नहीं करना चाहती है।

आपके पास कई विकल्प हैं; आप भविष्य के कनेक्शन बनाने के लिए एक समयबद्ध कॉल सेट कर सकते हैं, या आप अपने कनेक्शन पर ईवेंट से नए कनेक्शन शुरू कर सकते हैं (जैसे connectionLost या clientConnectionFailed)।

for host in hosts: 
    reactor.connectTCP(host, PORT, BlastFactory()) 
reactor.run() 
+0

मुझे नहीं पता था कि मैं ऐसा कर सकता हूं, वी! –

संबंधित मुद्दे