2009-04-16 22 views
6

जब सॉकेट प्रोग्रामिंग कर सॉकेट में addrinfo नाम के लिए मतलब क्या है, लोगों को हमेशा इस तरह addrinfo struct नाम ।"संकेत" प्रोग्रामिंग

अग्रिम धन्यवाद।


उत्तर के लिए धन्यवाद। शायद मैंने मुझे स्पष्ट नहीं किया।

लेकिन मैं जानना चाहता हूं कि परिवर्तनीय नाम "संकेत" कुछ शब्दों के लिए कुछ संक्षेप है या नहीं? या यह सिर्फ "संकेत" शब्द है इसका मतलब है कि यह केवल कुछ पता जानकारी देता है और getaddrinfo() फ़ंक्शन को बाकी हिस्सों में भरने देता है?

उत्तर

5

FreeBSD man page से:

hints एक struct addrinfo के लिए एक वैकल्पिक सूचक, के रूप में <netdb.h> द्वारा परिभाषित किया गया है ... यह संरचना सॉकेट के प्रकार के विषय में संकेत प्रदान करने के लिए इस्तेमाल किया जा सकता है कि फोन करने वाले का समर्थन करता है या उपयोग करने की इच्छा है।

इसे "संकेत" कहा जाता है क्योंकि इसका उपयोग, संकेत, संकेत (टिप के अर्थ में, एक सुझाव जो उपयोगी हो सकता है लेकिन अनदेखा किया जा सकता है) प्रदान करने के लिए किया जा सकता है। यह चीजों को इंगित करता है कि प्रोटोकॉल परिवार (उदाहरण के लिए आईपीवी 4 बनाम आईपीवी 6) कॉलर चाहता है, क्या सॉकेट प्रकार (डेटाग्राम बनाम स्ट्रैमिंग), प्रोटोकॉल (टीसीपी बनाम यूडीपी) आदि। आप hints के लिए NULL पास कर सकते हैं और इस प्रकार इंगित करता है कि आपको परवाह नहीं है कि प्रोटोकॉल परिवार, सॉकेट प्रकार, या प्रोटोकॉल जो आप वापस प्राप्त करते हैं।

0

struct addrinfo hints; सिर्फ एक परिवर्तनीय घोषणा है। संरचना को पुस्तकालय में परिभाषित किया गया है और sys/socket.h के माध्यम से शामिल किया गया है।

2

http://linux.die.net/man/3/getaddrinfo

संकेत पैरामीटर से पसंदीदा सॉकेट प्रकार, या प्रोटोकॉल निर्दिष्ट करता है। एक पूर्ण संकेत निर्दिष्ट करता है कि कोई भी नेटवर्क पता या प्रोटोकॉल स्वीकार्य है। यदि यह पैरामीटर न्यूल नहीं है तो यह एक ऐड्रिन्फो संरचना को इंगित करता है जिसका ai_family, ai_socktype, और ai_protocol सदस्य पसंदीदा सॉकेट प्रकार निर्दिष्ट करते हैं। AF_UNSPEC ai_family में किसी प्रोटोकॉल परिवार को निर्दिष्ट करता है (या तो IPv4 या IPv6, उदाहरण के लिए)। 0 ai_socktype या ai_protocol में निर्दिष्ट करता है कि कोई भी सॉकेट प्रकार या प्रोटोकॉल भी स्वीकार्य है। Ai_flags सदस्य नीचे परिभाषित अतिरिक्त विकल्प निर्दिष्ट करता है। कई झंडे तार्किक रूप से या उन्हें एक साथ जोड़कर निर्दिष्ट किए जाते हैं। संकेत पैरामीटर में मौजूद सभी अन्य सदस्यों में 0 या एक शून्य सूचक होना चाहिए।

+0

तो इससे, यह इस प्रकार है कि उदाहरण कोड दिखाए गए अनुसार गलत है; यह वास्तव में hints.ai_family क्षेत्र शुरू करने में विफल रहता है। – unwind

0

यह उसी अर्थ को संदर्भित करता है जो अंग्रेजी शब्द "संकेत" मतलब है। और यह संक्षिप्त नाम नहीं है।

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