यूनिक्स सॉकेट्स की सरल व्याख्या


20

मैं खोज कर सकता हूं और मैंने पहले से ही विकिपीडिया प्रविष्टि और कुछ अन्य स्थानों पर देखा है, लेकिन भले ही मुझे कुछ प्रोग्रामिंग अनुभव हो, लेकिन मैं वास्तव में अवधारणा को समझ नहीं पाया हूं। क्या आप मुझे 10 साल की तरह व्यवहार कर सकते हैं और मुझे सॉकेट संचार पर स्पष्ट विवरण दे सकते हैं?


उनका उपयोग करके कुछ छोटे परीक्षण एप्लिकेशन लिखें। तुम भी दो मशीनों की जरूरत नहीं है, सिर्फ दो छोटे क्षुधा शुरू करने के लिए। बिंगो।
पैट्रिक ह्यूजेस

बीईज गाइड टू नेटवर्क प्रोग्रामिंग यूनिक्स सॉकेट्स के लिए एक बहुत लोकप्रिय परिचय पाठ लगता है, हालांकि मैं यह नहीं कह सकता कि मुझे यह पसंद है।
नेमेनजा ट्रिफ़ुनोविक

मैंने पहले ही @DanielPittman उत्तर को उकेर दिया था, अगर मुझे लिखना होता तो मैं वही उत्तर लिखता; फिर भी, यदि आप अधिक सहायता चाहते हैं, तो मैं विस्तार करूँगा। कृपया अपने प्रश्न को संपादित करें, जो आप जानते हैं और जो आप नहीं जानते हैं उस पर भी कुछ पृष्ठभूमि डालें, मुझे बताएं कि क्या आप उपयोग करने में मदद देख रहे हैं, वे कैसे अंदर काम करते हैं, या सैद्धांतिक (प्रोटोकॉल डिजाइन) या आप कोशिश कर रहे हैं किसी उद्देश्य के लिए मूल्यांकन करने के लिए
दीपन मेहता

यहाँ एक पुस्तक है: यूनिक्स नेटवर्क प्रोग्रामिंग । धरती पर कोई भी व्यक्ति जो इस प्रश्न का उत्तर देता, वह इस माँ से सीखता। इस पुस्तक को पढ़ें, आपका प्रश्न स्वयं बेहतर हो जाएगा।
दीपन मेहता

क्या आपका मतलब बीएसडी सॉकेट से है? यूनिक्स सॉकेट्स केवल स्थानीय रूप से काम करते हैं।
imel96

जवाबों:


15

मैं आपको एक उदाहरण देता हूं: मान लीजिए कि आप अपने मित्र से संवाद करना चाहते हैं, जो आपके पते पर नहीं रहता है। ऐसा होने के लिए, आपको एक "संचार चैनल" स्थापित करना होगा। कहते हैं, आप टेलीफोन का उपयोग कर इस संचार करना चाहते हैं। आप जानते हैं कि शहर में टेलीफोन लाइनों का एक नेटवर्क है जो हर घर तक विस्तारित है।

अब, आपके घर में एक टेलीफोन सॉकेट है, और आपके दोस्तों के घर में एक है। संचार होने के लिए, आपको और आपके मित्र को संचार के दोनों छोर पर अपने फोन को सॉकेट में प्लग करके नेटवर्क से कनेक्ट करना होगा। प्रोग्रामिंग में सॉकेट्स वैसा ही है, वैचारिक रूप से, टेलीफोन सॉकेट्स के रूप में।

प्रोग्रामिंग में, आपके पास दो प्रक्रियाएं (चल रहे कार्यक्रम) हैं जो एक दूसरे के साथ संवाद करना चाहते हैं। इसके लिए, उन्हें अपने बीच एक संचार लिंक स्थापित करना होगा। फिर से, एक नेटवर्क उपलब्ध है, उन्हें बस कुछ प्रकार के सॉकेट्स का उपयोग करके इस नेटवर्क से कनेक्ट करने की आवश्यकता है। यूनिक्स सॉकेट एक ऐसा सॉकेट है जो नेटवर्क को यह कनेक्टिविटी / प्लगगैबिलिटी प्रदान करता है। इसलिए, प्रत्येक दो कार्यक्रमों में, आपके पास कुछ कोड होंगे जो सॉकेट्स के माध्यम से नेटवर्क से जुड़ने का काम करता है।

बाकी विवरण हैं।


2
यदि मेरी पर्याप्त प्रतिष्ठा है, तो मैं इसे कम कर दूंगा। आपका पाठ यह नहीं बताता है कि सॉकेट कैसे काम करता है। विकिपीडिया के समान ही सामान्य पाठ। सॉकेट कैसे सुनता है ? आपके टेलीफोन सॉकेट कनेक्शन के लिए कैसे सुन सकते हैं ?
ग्रीन

21

यूनिक्स सॉकेट्स एक द्विदिश सॉकेट हैं - सिर्फ एक आईपी आधारित सॉकेट की तरह, जिससे आप शायद परिचित हैं, और एक पाइप के समान, जिसके बारे में आप शायद परिचित हैं।

उनके पास दिलचस्प गुणों का एक छोटा समूह है:

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

अनिवार्य रूप से, वे किसी भी अन्य सॉकेट के बराबर हैं - उनके पास पाइप की तुलना में थोड़ा अधिक दिलचस्प गुण हैं, लेकिन अन्यथा मौलिक रूप से भिन्न नहीं हैं। वे आम तौर पर एक पाइप से अधिक IPC विलंबता, और अक्सर बड़े बफ़र करते हैं - हालांकि आप इसे ट्यून करने में सक्षम हो सकते हैं, और यह प्लेटफ़ॉर्म पर निर्भर करता है।

याद रखने वाली अंतिम दिलचस्प संपत्ति यह है कि वे फाइल सिस्टम को अपने नेमस्पेस के रूप में उपयोग करते हैं - इसलिए एक अनाम पाइप के बजाय एक नामित पाइप की तरह हैं, उस सॉफ़्टवेयर में पिछले संबंध के साथ संवाद नहीं कर सकते हैं। (सार नेमस्पेस सॉकेट समान हैं, लेकिन "फ़ाइल" पथ मौजूद नहीं है।)

इससे गहरा कुछ भी नहीं है - उनके पास कोई सुपर-सीक्रेट छिपी हुई संपत्ति नहीं है जो उन्हें एक विशिष्ट पाइप, या एक टीसीपी कनेक्शन से स्थानीय रूप से अलग बनाती है।


3
धन्यवाद, लेकिन मैं अभी भी इसे जटिल और अहंकार से भरा हुआ पाता हूं।
एलोजो वेलुगी

2
कृपया इस बात से नाराज़ न हों कि एक पंक्ति के उत्तर में देखें, यह देखने के लिए कि क्या बेहतर मदद करता है: "आप जानते हैं कि टीसीपी / आईपी और यूडीपी / आईपी सॉकेट कैसे काम करते हैं? ये एक ही हैं, केवल आईपी भाग के बिना।"
डैनियल पिटमैन

मैं नाराज नहीं हूं, मैं सिर्फ समझना चाहता हूं। धन्यवाद। मैं उन पर विस्तार से अध्ययन करूंगा।
एलोजो वालुगी

4
उस शब्द का उपयोग करके किसी शब्द को परिभाषित करना (यानी: "यूनिक्स सॉकेट्स एक द्विदिश सॉकेट हैं") किसी को कुछ भी नहीं समझाता है जो नहीं जानता है कि सॉकेट के साथ क्या शुरू होना है।
ब्रायन ओकले

1

प्रोग्रामिंग लिनक्स सॉकेट, भाग 1: टीसीपी / आईपी का उपयोग करना मेरे लिए काफी अच्छा काम करता है। यह आईपी नेटवर्क और नेटवर्क परतों के लिए एक शुरूआत के साथ शुरू होता है, फिर सी और पायथन दोनों में एक साधारण इको सर्वर और क्लाइंट को लागू करने का तरीका दिखाता है।

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