2009-10-20 15 views
130

तो मैं सॉकेट प्रोग्रामिंग पर शुरुआत कर रहा हूं, और मैं इसे AF_INET देख रहा हूं। फिर भी, मैंने कभी भी अपने स्थान पर कुछ भी नहीं देखा है। मेरे व्याख्याता सहायक नहीं हैं, और बस कहें "आपको बस इसकी आवश्यकता है"। तो मेरे प्रश्न:AF_INET क्या है, और मुझे इसकी आवश्यकता क्यों है?

  • AF_INET का उद्देश्य क्या है?
  • क्या इसके बजाए कभी और भी इस्तेमाल किया जाता है?
    • यदि नहीं, तो यह क्यों है? भविष्य में संभावित परिवर्तनों के लिए?
    • यदि हां, तो क्यों और क्यों? (; PF_INET (आईपीवी 4) इंटरनेट प्रोटोकॉल परिवार के लिए है वायुसेना का पता परिवार के लिए है)

उत्तर

163

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

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

आशा इस मदद करता है,

35

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

आईपीवी 6 पता परिवार के लिए AF_INET (जो, पूर्वदर्शी में, AF_INET4 नाम दिया जाना चाहिए) का सर्वव्यापी विकल्प AF_INET6 है। आईपीवी 4 32-बिट पते का उपयोग करता है; आईपीवी 6 128-बिट पते का उपयोग करता है।

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

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

+0

आपकी प्रतिक्रिया के लिए धन्यवाद है? क्या आप अन्य प्रश्नों पर अधिक विशिष्ट हो सकते हैं, यद्यपि? – Smashery

+0

AF_INET6 के बारे में अच्छा बिंदु; अन्य पता परिवार कुछ ओएस पर समर्थित हैं। – MarkR

11

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

  1. AF_UNIX: पता प्रारूप यूनिक्स पथ नाम है

  2. AF_INET: पता प्रारूप मेजबान और पोर्ट संख्या

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

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

13

आप को संबोधित कर आप आईपीसी सॉकेट संचार को लागू करने का उपयोग करेंगे सॉकेट किस प्रकार निर्दिष्ट करने के लिए AF_UNIX या AF_INET की तरह बहस की जरूरत है। एएफ पता परिवार के लिए खड़ा है।

  1. एक एकल स्ट्रिंग AF_UNIX/AF_LOCAL पते के परिवार के लिए प्रयोग किया जाता है: बीएसडी मानक सॉकेट में

    के रूप में (अजगर सॉकेट मॉड्यूल में अपनाया) पते इस प्रकार के रूप में प्रतिनिधित्व कर रहे हैं। यह विकल्प स्थानीय मशीनों पर आईपीसी के लिए उपयोग किया जाता है जहां कोई आईपी पता आवश्यक नहीं है।

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

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

यह thread about the differences between AF_INET and PF_INET भी उपयोगी हो सकता है।

1

यह प्रोटोकॉल पते परिवार को परिभाषित करता है। यह सॉकेट के प्रकार को निर्धारित करता है। जेब पीसी समर्थन AF_INET। मैं बात का अनुमान लगाना रहा है कि मेरा पहला सवाल का जवाब है कि अपने उद्देश्य क्या नेटवर्क प्रोटोकॉल का उपयोग करने को परिभाषित करने के लिए है -

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

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

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