2011-06-30 11 views
10

इस प्रकार दिलचस्प प्रतिक्रियाओं के लिए धन्यवाद। प्रतिक्रियाओं के प्रकाश में मैंने अपना प्रश्न थोड़ा बदल दिया है।(क्या वहां हैं) नियमित सॉकेट ऑब्जेक्ट पर पाइथन सॉकेटसेटर के प्रदर्शन फायदे?

लगता है कि मैं क्या सच में जानना, socketserver के रूप में सीधे-अप सॉकेट विलंबता और तनाव के दोनों अवधियों को संभालने के लिए, यानी यह अतिरिक्त तंत्र या सुविधाओं है कि के रूप में अपनी परोक्ष विज्ञापित स्थिति का औचित्य सिद्ध है डिज़ाइन किया गया पुस्तकालय के लिए विरोध किया है की जरूरत है एक "सर्वर," या क्या यह उपयोग करने के लिए थोड़ा आसान है?

हर कोई सॉकेटसेवर की सिफारिश कर रहा है लेकिन मुझे अभी भी पूरी तरह से स्पष्ट नहीं है कि सॉकेट के विपरीत क्यों।

धन्यवाद !!!

मैं मानक सॉकेट पुस्तकालय के आधार पर अजगर में कुछ सर्वर कार्यक्रमों का निर्माण किया है http://docs.python.org/library/socket.html

मैंने देखा है कि वे कि लोड बिना वे एक प्रवृत्ति है सिवाय ठीक काम करने के लिए लग रहे हैं थोड़ी देर के बाद सोने के लिए। मुझे लगता है कि इस उत्पादन में एक मुद्दा हो नहीं सकता है (इसमें कोई शक नहीं वहाँ अन्य मुद्दों के बहुत हो जाएगा) लेकिन मैं जानना चाहते हैं कि मैं यहाँ नौकरी के लिए सही कोड का उपयोग कर रहा हूँ चाहते हैं।

चारों ओर देख रहे हैं मैंने देखा कि अजगर भी एक socketserver पुस्तकालय प्रदान करता है - http://docs.python.org/library/socketserver.html

सॉकेट पुस्तकालय के लिए आम तौर पर 5.

अप करने के लिए के अनुसार, कई कनेक्शन के लिए सुन क्षमता प्रदान करता है सॉकेटसेटर पृष्ठ, इसकी सेवाएं तुल्यकालिक हैं, यानी अवरुद्ध, लेकिन कोईका समर्थन कर सकता है थ्रेडिंग के माध्यम सेअसीमित व्यवहार। मैंने देखा कि इसमें 5 अनुरोधों के डिफ़ॉल्ट मान के साथ अनुरोध कतार बनाए रखने की क्षमता है ... इसलिए शायद वहां बहुत अंतर नहीं है।

मैंने यह भी पढ़ा है कि घुमावदार हुड के नीचे सॉकेटसेटर चलाता है। हालांकि मैं किसी जानवर को मुड़ने का आकार नहीं लेता, जब तक कि यह पर सार्थक न हो।

तो मेरा सवाल है, सॉकेट्स सॉकेट से अधिक मजबूत है? यदि हां, तो क्यों?

(और तुम कैसे जानते हो?)

संयोग से, socketserver अजगर के सॉकेट की शीर्ष पर बनाया गया है या यह है है पूरी तरह से अलग?

अंत में, किसी को भी क्या एक गलत ऐसी है कि मानक सॉकेट 'गिरावट सो' कृपया उस पर भी झंकार के लिए स्वतंत्र महसूस कर सकता है जानता है एक बोनस के रूप।

ओह, और मैं 3.x की तुलना में अजगर 2.x बल्कि से बात कर रहा हूं, अगर यह अंतर बनाता है।

धन्यवाद दोस्तों!

JSH


ठीक है, मैं एक तकनीकी जवाब नहीं है, लेकिन मैं लोगों को 'सिफारिशों के अनुसार SocketServer को क्रियान्वित किया है और यह निश्चित रूप से और अधिक विश्वसनीय है। यदि कोई भी निम्न स्तर के स्पष्टीकरण के साथ आता है तो कृपया मुझे बताएं ... धन्यवाद!

+3

यह एक मिनी ढांचा है। मुड़ एक पूर्ण फ्रेमवर्क है। हां, वे एक दूसरे के शीर्ष पर बने हैं। पायथन में 'सॉकेट' मॉड्यूल ओएस के मूल सॉकेट इंटरफेस (विनसॉक, बीएसडी सॉकेट, आदि) के आसपास सिर्फ एक रैपर है। किसी भी नेटवर्क किए गए एप्लिकेशन, चाहे वह पाइथन या सी ++ में हों, संभवतः इस इंटरफ़ेस का उपयोग करेगा। और चूंकि पाइथन की 'सॉकेट' उसके चारों ओर एक रैपर है, इसलिए 'सॉकेटसेटर' और ट्विस्ट दोनों इसका उपयोग करते हैं। – Santa

+1

'सॉकेटसेटर' तुल्यकालिक है जब तक कि आप या तो फोर्क या थ्रेड प्रक्रियाओं की क्षमता में मिश्रण न करें। मुड़ता हुआ असीमित है, लेकिन आम तौर पर 'चयन' या 'एपोल' जैसे कुछ का उपयोग करके इसे संभालता है जहां आप सॉकेट को अवरुद्ध करने की अनुमति नहीं देते हैं और फिर सॉकेट से निपटते हैं क्योंकि वे लिखे जाने या पढ़ने के लिए तैयार होते हैं। मेरा मानना ​​है कि ट्विस्ट में थ्रेडिंग का उपयोग करने का एक विकल्प है, लेकिन थ्रेडिंग के बिना इसका उपयोग करना कहीं अधिक आसान है। तो, मुझे सच में संदेह है कि ट्विस्टेड 'सॉकेट्सवर' का उपयोग करता है। उस अंतिम बिट के लिए –

उत्तर

9

सॉकेट मॉड्यूल पैकेट भेजने और प्राप्त करने के लिए एक बहुत ही निम्न-स्तर मॉड्यूल है। जैसा कि प्रलेखन में कहा गया है, यह "बीएसडी सॉकेट इंटरफेस तक पहुंच प्रदान करता है"।

यदि आप कुछ और विस्तृत चाहते हैं, तो "सॉकेटसेटर" है जो आपके लिए गोररी विवरण का ख्याल रखता है, लेकिन यह अभी भी अपेक्षाकृत कम स्तर है।

इसके ऊपर आप सीजीआई के साथ या उसके बिना एक HTTP सर्वर, एक एक्सएमएल-आरपीसी सर्वर, और इसी तरह के HTTP सर्वर पा सकते हैं। ये ढांचे हैं, जो आमतौर पर इसका मतलब है कि उनका कोड आपके कोड को कॉल करता है। यह चीजों को आसान बनाता है क्योंकि आपको पूरी तरह से काम करने वाले सर्वर के लिए कुछ "अंतराल" भरना होगा, लेकिन इसका मतलब यह भी है कि आपके पास जो कुछ भी करता है उस पर थोड़ा कम नियंत्रण होता है।

यदि आपको केवल सॉकेटसेटर की विशेषताओं की आवश्यकता है, तो मैं शायद इसके साथ जाऊंगा, जब तक कि आप किसी कारण से पहिया को फिर से शुरू नहीं करना चाहते हैं (और नए पहियों को डिजाइन करने के हमेशा अच्छे कारण हैं, उदाहरण के लिए यह समझने के लिए कि यह कैसे काम करता है)।

+1

+1! –

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