सॉकेट क्या है?

सॉकेट एक ही या अलग मशीनों पर दो अलग-अलग प्रक्रियाओं के बीच संचार की अनुमति देते हैं। अधिक सटीक होने के लिए, यह मानक यूनिक्स फ़ाइल विवरणकों का उपयोग करके अन्य कंप्यूटरों से बात करने का एक तरीका है। यूनिक्स में, प्रत्येक I / O कार्रवाई एक फाइल डिस्क्रिप्टर को लिखने या पढ़ने के द्वारा की जाती है। एक फाइल डिस्क्रिप्टर एक ओपन फाइल से जुड़ा एक पूर्णांक है और यह एक नेटवर्क कनेक्शन, एक टेक्स्ट फाइल, एक टर्मिनल, या कुछ और हो सकता है।

एक प्रोग्रामर के लिए, एक सॉकेट एक निम्न-स्तरीय फ़ाइल विवरणक की तरह दिखता है और व्यवहार करता है। ऐसा इसलिए है क्योंकि कमांड जैसे कि रीड () और राइट () सॉकेट्स के साथ उसी तरह काम करते हैं जैसे वे फाइलों और पाइपों के साथ करते हैं।

सॉकेट्स को पहले 2.1BSD में पेश किया गया था और बाद में 4.2BSD के साथ अपने वर्तमान रूप में परिष्कृत किया गया था। सॉकेट्स सुविधा अब अधिकांश वर्तमान UNIX सिस्टम रिलीज़ के साथ उपलब्ध है।

सॉकेट का उपयोग कहां किया जाता है?

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

सॉकेट प्रकार

उपयोगकर्ताओं के लिए चार प्रकार के सॉकेट उपलब्ध हैं। पहले दो सबसे अधिक उपयोग किए जाते हैं और अंतिम दो शायद ही कभी उपयोग किए जाते हैं।

प्रक्रियाओं को केवल एक ही प्रकार के सॉकेट्स के बीच संवाद करने के लिए माना जाता है लेकिन कोई प्रतिबंध नहीं है जो विभिन्न प्रकारों के सॉकेट्स के बीच संचार को रोकता है।

  • Stream Sockets- नेटवर्क वाले वातावरण में डिलीवरी की गारंटी है। यदि आप धारा सॉकेट तीन आइटम "ए, बी, सी" के माध्यम से भेजते हैं, तो वे एक ही क्रम में पहुंचेंगे - "ए, बी, सी"। ये सॉकेट डेटा ट्रांसमिशन के लिए टीसीपी (ट्रांसमिशन कंट्रोल प्रोटोकॉल) का उपयोग करते हैं। यदि वितरण असंभव है, तो प्रेषक एक त्रुटि संकेतक प्राप्त करता है। डेटा रिकॉर्ड की कोई सीमा नहीं है।

  • Datagram Sockets- नेटवर्क वाले वातावरण में डिलीवरी की गारंटी नहीं है। वे कनेक्शन रहित हैं क्योंकि आपको स्ट्रीम सॉकेट में एक खुले कनेक्शन की आवश्यकता नहीं है - आप गंतव्य जानकारी के साथ एक पैकेट का निर्माण करते हैं और इसे बाहर भेजते हैं। वे यूडीपी (उपयोगकर्ता डेटाग्राम प्रोटोकॉल) का उपयोग करते हैं।

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

  • Sequenced Packet Sockets- वे एक धारा सॉकेट के समान हैं, इस अपवाद के साथ कि रिकॉर्ड की सीमाएं संरक्षित हैं। यह इंटरफ़ेस केवल नेटवर्क सिस्टम (NS) सॉकेट एब्सट्रैक्शन के एक भाग के रूप में प्रदान किया गया है, और सबसे गंभीर NS अनुप्रयोगों में बहुत महत्वपूर्ण है। अनुक्रम-पैकेट सॉकेट उपयोगकर्ता को पैकेट या पैकेट के समूह पर अनुक्रम पैकेट प्रोटोकॉल (SPP) या इंटरनेट डेटाग्राम प्रोटोकॉल (IDP) हेडर में हेरफेर करने की अनुमति देता है, या तो जो भी डेटा भेजा जाना है, या उसके साथ एक प्रोटोटाइप हेडर लिखकर। सभी आउटगोइंग डेटा के साथ उपयोग किए जाने वाले डिफ़ॉल्ट हेडर को निर्दिष्ट करना, और आने वाले पैकेट पर उपयोगकर्ता को हेडर प्राप्त करने की अनुमति देता है।

आगे क्या है?

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