2009-03-26 1 views
40

में टीसीपी क्लाइंट बनाम सॉकेट मुझे TCPClient का अधिक उपयोग नहीं दिख रहा है, फिर भी Socket बहुत सारे हैं? उनके बीच बड़ा अंतर क्या है और आप प्रत्येक का कब उपयोग करेंगे?सी #

मैं समझता हूं कि .NET Socket WINSOCK के शीर्ष पर लिखा गया है, और TCPClientSocket वर्ग पर एक रैपर है। इस प्रकार TCPClient श्रृंखला है, और संभवतः अक्षम है। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं।

उत्तर

31

टीसीपी क्लाइंट और टीसीपीलिस्टर का उपयोग सिर्फ कोड की कुछ कम पंक्तियों का है। जैसा कि आप कहते हैं कि यह सॉकेट क्लास पर सिर्फ एक रैपर है, इसलिए उनके बीच कोई प्रदर्शन अंतर नहीं है, यह पूरी तरह स्टाइल पसंद है।

+2

'शैली' यहां 'सामान्य ज्ञान' के लिए एक बड़ा शब्द है। यदि आप प्रीफैब का उपयोग कर सकते हैं, तो हर तरह से ऐसा करें :) – xtofl

+6

यहां नोट यह विरोधाभास प्रतीत होता है। http://msdn.microsoft.com/en-us/library/system.net.sockets.socket%28v=vs.110%29.aspx "यदि आप अपेक्षाकृत सरल एप्लिकेशन लिख रहे हैं और मुझे अधिकतम प्रदर्शन_ की आवश्यकता नहीं है, तो विचार करें टीसीपी क्लाइंट का उपयोग करना " – Jon

+2

कोई विरोधाभास नहीं है। उच्च स्तर के अमूर्तता के बारे में सामान्य धारणा यह है कि अंतर्निहित कार्यक्षमता के संबंध में यह कम लचीला है। इसलिए, अगर आपको ऐसा कुछ करने की ज़रूरत है जो कहने के मॉडल में फिट न हो, 'टीसीपी क्लाइंट', तो आप घुमा सकते हैं और इसकी एपीआई झुक सकते हैं और प्रक्रिया में पठनीयता और प्रदर्शन में हार सकते हैं। यदि आप इसे करने के लिए डिज़ाइन किए गए कार्यों के लिए इसका उपयोग कर रहे हैं, तो यह विश्वास करने का कोई अंतर्निहित कारण नहीं है कि यह एक अधिक स्पष्ट API से कम प्रदर्शन करेगा, फिर भी आप पठनीयता में लाभ प्राप्त करेंगे। – tne

9

इसके अलावा, आप TCPClient वस्तु से सीधे सॉकेट उपयोग कर सकते हैं, यह संपत्ति Client के अंतर्गत है - तो वहाँ कोई प्रदर्शन अंतर है।