AF_INET क्या है, और मुझे इसकी आवश्यकता क्यों है?


200

मैं सॉकेट प्रोग्रामिंग पर शुरू हो रहा हूं, और मैं इसे देखता रहता हूं AF_INET

फिर भी, मैंने इसके स्थान पर किसी और चीज का उपयोग नहीं किया है। मेरे लेक्चरर इतने मददगार नहीं हैं और कहते हैं कि "आपको बस इसकी ज़रूरत है"।

तो मेरे सवाल:

  • का उद्देश्य क्या है AF_INET?
  • क्या इसके बजाय कभी और कुछ भी इस्तेमाल किया जाता है?
    • यदि नहीं, तो ऐसा क्यों है? भविष्य में संभावित परिवर्तनों के लिए?
    • यदि हां, तो क्या और क्यों?

जवाबों:


268

AF_INETएक पता परिवार है, जिसका उपयोग आपके सॉकेट के साथ संवाद करने के लिए उपयोग किया जाता है (इस मामले में, इंटरनेट प्रोटोकॉल v4 पते)। जब आप सॉकेट बनाते हैं, तो आपको उसका पता परिवार को बताना होगा, और फिर आप केवल सॉकेट के साथ उस प्रकार के पते का उपयोग कर सकते हैं। उदाहरण के लिए, लिनक्स कर्नेल, UNIX ( AF_UNIX) सॉकेट्स और IPX ( AF_IPX), और IRDA और ब्लूटूथ के साथ संचार के रूप में 29 अन्य पता परिवारों का समर्थन करता है ( AF_IRDAऔर AF_BLUETOOTH, लेकिन यह संदिग्ध है कि आप इनका इतने निम्न स्तर पर उपयोग करेंगे)।

अधिकांश भाग के लिए, AF_INETनेटवर्क पर सॉकेट प्रोग्रामिंग के लिए चिपके रहना सबसे सुरक्षित विकल्प है। AF_INET6इंटरनेट प्रोटोकॉल v6 पतों के लिए भी है ।

उम्मीद है की यह मदद करेगा,


43

AF_INET का प्राथमिक उद्देश्य अन्य संभावित नेटवर्क प्रोटोकॉल या एड्रेस परिवारों के लिए अनुमति देना था (AF एड्रेस परिवार के लिए है; PF_INET इंटरनेट (IPv4) इंटरनेट प्रोटोकॉल परिवार के लिए है)। उदाहरण के लिए, शायद अभी भी कुछ नेटवेयर एसपीएक्स / आईपीएक्स नेटवर्क हैं; DECNet, StarLAN और SNA जैसे अन्य नेटवर्क सिस्टम थे, बीमार-भीख देने वाले आईएसओ OSI (ओपन सिस्टम इंटरकनेक्शन) का उल्लेख नहीं करने के लिए, और ये जरूरी नहीं कि नेटवर्क कनेक्शनों में चपरासी होस्ट की पहचान करने के लिए अब सर्वव्यापी आईपी पते का उपयोग करें।

IP_6 पते परिवार के लिए AF_INET का सर्वव्यापी विकल्प (जो पूर्वव्यापी में, AF_INET4 नाम होना चाहिए था) AF_INET6 है। IPv4 32-बिट पतों का उपयोग करता है; IPv6 128-बिट पतों का उपयोग करता है।

आप कुछ अन्य मूल्यों को देख सकते हैं - लेकिन वे असामान्य हैं। यह विकल्प और भविष्य की दिशाओं के लिए अनुमति देने के लिए है। सॉकेट्स इंटरफ़ेस वास्तव में वास्तव में बहुत सामान्य है - जो कि उन कारणों में से एक है, जहां अन्य नेटवर्किंग इंटरफेस वापस आ गए हैं।

जीवन (ज्यादातर) सरल हो गया है - आभारी रहें।


आपकी प्रतिक्रिया के लिए धन्यवाद - मैं समर्पण कर रहा हूं कि मेरे पहले प्रश्न के लिए आपका उत्तर यह है कि इसका उद्देश्य यह है कि नेटवर्क प्रोटोकॉल का उपयोग क्या है? क्या आप अन्य प्रश्नों पर अधिक विशिष्ट हो सकते हैं, हालांकि?
स्मैशरी

AF_INET6 के बारे में अच्छी बात; अन्य पते परिवारों को कुछ OS पर समर्थित हैं।
मार्क

15

IPC सॉकेट संचार को कार्यान्वित करने के लिए आप किस प्रकार के सॉकेट का उपयोग कर रहे हैं, यह निर्दिष्ट करने के लिए आपको AF_UNIX या AF_INET जैसे तर्क चाहिए। वायुसेना पता परिवार के लिए खड़ा है।

जैसा कि बीएसडी मानक सॉकेट (पायथन सॉकेट मॉड्यूल में अपनाया गया) पते निम्नानुसार दर्शाए गए हैं:

  1. AF_UNIX / AF_LOCAL पता परिवार के लिए एक एकल स्ट्रिंग का उपयोग किया जाता है। यह विकल्प स्थानीय मशीनों पर IPC के लिए उपयोग किया जाता है, जहाँ IP पते की आवश्यकता नहीं होती है।

  2. AF_INET एड्रेस परिवार के लिए एक जोड़ी (होस्ट, पोर्ट) का उपयोग किया जाता है, जहां होस्ट एक स्ट्रिंग है जो इंटरनेट डोमेन नोटेशन जैसे 'daring.cwi.nl' में होस्टनाम या '100.50.200.5' जैसे IPv4 एड्रेस का प्रतिनिधित्व करता है, और पोर्ट है पूर्णांक। इंटरनेट पर प्रक्रियाओं के बीच संवाद करने के लिए उपयोग किया जाता है।

AF_UNIX, AF_INET6, AF_NETLINK, AF_TIPC, AF_CAN, AF_BLUETOOTH, AF_PACKET, AF_RDS अन्य विकल्प जो बजाय इस्तेमाल किया जा सकता हैं AF_INET

AF_INET और PF_INET के बीच अंतर के बारे में यह धागा भी उपयोगी हो सकता है।


14

सॉकेट उनके डोमेन, प्रकार और परिवहन प्रोटोकॉल की विशेषता है। सामान्य डोमेन हैं:

  1. AF_UNIX: पता प्रारूप UNIX pathname है

  2. AF_INET: पता प्रारूप होस्ट और पोर्ट नंबर है

(वास्तव में कई अन्य विकल्प हैं जो यहां विशेष उद्देश्यों के लिए उपयोग किए जा सकते हैं)। आमतौर पर हम सॉकेट प्रोग्रामिंग के लिए AF_INET का उपयोग करते हैं

संदर्भ: http://www.cs.uic.edu/~troy/fall99/eecs471/sockets.html


2

यह प्रोटोकॉल पता परिवार को परिभाषित करता है। यह निर्धारित सॉकेट के प्रकार को निर्धारित करता है। पॉकेट पीसी AF_INET का समर्थन करते हैं।

निम्न पृष्ठ की सामग्री काफी सभ्य है http://etutorials.org/Programming/Pocket+pc+network+programming/Chapter+1.+Winsock/Streaming+TCP+Sockets/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.