मैं टीसीपी बनाम यूडीपी की अवधारणा को समझ सकता हूं, लेकिन फिर भी मुझे नहीं लगता कि यूडीपी पैकेट भेजने के 2 तरीके हैं, और इसके साथ में मुझे अभी भी समझ में नहीं आता है कि यह बाध्य() और स्वीकार करने के लिए बिल्कुल जरूरी है() ...यूडीपी सॉकेट के साथ कनेक्ट/भेजें/आरईवी के बजाय sendto/recvfrom का उपयोग करने का क्या उद्देश्य है?
उत्तर
accept()
टीसीपी के लिए है। इसका यूडीपी के साथ कुछ लेना देना नहीं है।connect()
यूडीपी में कुछ भी नहीं करता है, यह केवल स्थानीय एपीआई को यह जानने के लिए परिस्थिति देता है कि आप किससे भेज रहे हैं और प्राप्त कर रहे हैं।आप पहले से ही है कि पता नहीं है, या परवाह नहीं है, या एक ही सॉकेट के साथ आपको अनेक स्थानों पर भेजना चाहते हैं, तो आप
connect()
का उपयोग नहीं करते हैं, तो आपsendto()
बजाय का उपयोग करें। इसी प्रकार प्राप्त करने के लिए।उदाहरण के लिए एक यूडीपी सर्वर पर विचार करें। यह
recvfrom(),
कहेंगे तो यह स्रोत पते की जानकारी, प्रक्रिया अनुरोध प्राप्त होता है, प्रतिक्रिया बनाते हैं, औरsendto().
नहींconnect()
कहीं भी शामिल है, Ergo संभव नहीं के माध्यम से उस पते पर भेजने का उपयोग करने के लिए या तोsend()
याrecv().
यह है केवल
bind()
एक सर्वर के लिए आवश्यक है, क्योंकि ग्राहकों को भेजने के लिए एक निश्चित पोर्ट नंबर की आवश्यकता है। किसी ग्राहक कोbind()
की आवश्यकता नहीं है: एक स्वचालित बाध्य() सिस्टम-असाइन किए गए स्थानीय पोर्ट नंबर का उपयोग कर पहलेsend()/sendto()/recv()/recvfrom()
पर होगा।
यह समझना महत्वपूर्ण है कि टीसीपी कनेक्शन उन्मुख है, जबकि यूडीपी एक कनेक्शन रहित प्रोटोकॉल है।
- टीसीपी: आपको दूरस्थ होस्ट से डेटा भेजने/प्राप्त करने से पहले कनेक्ट करने की आवश्यकता है।
- यूडीपी: कोई कनेक्शन आवश्यक नहीं है। आप किसी भी मेजबान से डेटा भेज/प्राप्त कर सकते हैं।
गंतव्य निर्दिष्ट करने के लिए आप आमतौर पर यूडीपी सॉकेट पर sendto()
का उपयोग करेंगे। इसी तरह, आप सामान्य रूप से recvfrom()
का उपयोग यह जानने के लिए करेंगे कि यूडीपी डेटा कहां से प्राप्त हुआ था।
हालांकि, आप वास्तव में एक विकल्प के रूप में यूडीपी सॉकेट पर connect()
का उपयोग कर सकते हैं। उस स्थिति में, आप connect()
के साथ निर्दिष्ट पते पर डेटा भेजने के लिए और पते से डेटा प्राप्त करने के लिए यूडीपी सॉकेट पर send()/recv()
का उपयोग कर सकते हैं। (connect()
UDP सॉकेट पर केवल डिफ़ॉल्ट सहकर्मी पता सेट करता है और आप के रूप में कई बार UDP सॉकेट पर connect()
कॉल कर सकते हैं के रूप में आप चाहते हैं, और निश्चित रूप से UDP सॉकेट, पर connect()
, कनेक्शन के लिए किसी भी हाथ मिलाना प्रदर्शन नहीं करता।)
उम्मीद है की यह मदद करेगा।
- 1. आरटीपी टीसीपी के बजाय यूडीपी का उपयोग क्यों करता है?
- 2. यूडीपी सॉकेट
- 3. यूडीपी सॉकेट
- 4. सॉकेट के साथ gprof का उपयोग
- 5. उपयोग करने का उद्देश्य क्या है?
- 6. (कैसे) मैं टीसीपी यातायात के बजाय यूडीपी सुनने के लिए सर्वरसेट का उपयोग कर सकता हूं?
- 7. "चयन" फ़ंक्शन के साथ गैर-अवरुद्ध सॉकेट का उपयोग करने का क्या फायदा है?
- 8. जावास्क्रिप्ट में Function.call.apply का उपयोग करने का क्या उद्देश्य है?
- 9. एंड्रॉइड में यूडीपी सॉकेट का उपयोग कैसे करें?
- 10. कमांड टाइप का उपयोग करने का उद्देश्य क्या है। सक्षम
- 11. Boost.MPI लाइब्रेरी का उपयोग करने का उद्देश्य क्या है?
- 12. NSOrderedSame का उपयोग करने का उद्देश्य क्या है?
- 13. Android में System.img का उपयोग करने का उद्देश्य क्या है?
- 14. यहां 'शून्य' का उपयोग करने का उद्देश्य क्या है?
- 15. यूडीपी सॉकेट सेट टाइमआउट
- 16. कार्यसंचार स्रोत के साथ कार्यप्रणाली विकल्प का उद्देश्य क्या है?
- 17. आईओएस पर यूडीपी सॉकेट के प्रबंधन के लिए मैं किस उच्च स्तरीय एपीआई का उपयोग करूंगा?
- 18. "लिंक के रूप में जोड़ें" का उपयोग करने के बजाय पोर्टेबल क्लास लाइब्रेरी का उपयोग करने का क्या फायदा है?
- 19. एर्म के पीके का उद्देश्य क्या है?
- 20. सॉकेट फ्लश करने का क्या अर्थ है?
- 21. सी ++ में किसी संदर्भ के संदर्भ का उपयोग करने का उद्देश्य क्या है?
- 22. 'के' के साथ स्थिरांक शुरू करने का महत्व क्या है?
- 23. क्या मौजूदा कनेक्शन के साथ ट्रांज़ेक्शनस्कोप का उपयोग करने का कोई तरीका है?
- 24. सॉकेट जोड़ी के साथ zlib फ़िल्टर का उपयोग
- 25. गुइस के बजाय सीडीआई/वेल्ड के साथ जेएक्स-आरएस 2.0 का उपयोग करने का लाभ?
- 26. क्या BlockingCollection (टी के) का उद्देश्य है
- 27. परिभाषित करने के बजाय def और defn का उपयोग करने के पीछे तर्क क्या है?
- 28. क्या पीडी-विस्तारित के बजाय वेनिला शुद्ध डेटा का उपयोग करने का कोई कारण है?
- 29. GLfloat के बजाय GLfloat का उपयोग करने के लिए
- 30. क्या रेल यूडीपी सॉकेट सुनने के एक साफ तरीके का समर्थन करते हैं?
सुनने के बारे में क्या()? और बाध्य() विधि के बारे में, क्या इसका मतलब यह है कि मुझे उस बंदरगाह पर जो कुछ भी जमीन मिलती है? – jokoon
@gokoon 1. सुनो() टीसीपी के लिए है। इसका यूडीपी के साथ कुछ लेना देना नहीं है। 2. एक प्रश्न के रूप में, बाइंड() के बारे में क्या मतलब है? 3. हां, यदि आप कनेक्ट नहीं हैं तो आप उस यूडीपी पोर्ट को संबोधित सब कुछ प्राप्त करते हैं। – EJP
@EJP यह http://linux.die.net/man/7/udp कहता है कि जब कनेक्ट() को कॉल किया जाता है, तो यूडीपी पढ़ने/लिखने का उपयोग करता है! तो पढ़ें/लिखें या भेजें/recv? – onmyway133