एक सॉकेट कंप्यूटर नेटवर्क प्रोग्रामिंग की सबसे मौलिक तकनीकों में से एक है। सॉकेट नेटवर्क सॉफ्टवेयर एप्लिकेशन को नेटवर्क हार्डवेयर और ऑपरेटिंग सिस्टम में निर्मित मानक तंत्र का उपयोग करके संवाद करने की अनुमति देते हैं।
हालांकि यह इंटरनेट सॉफ्टवेयर डेवलपमेंट की एक और विशेषता की तरह लगता है, सॉकेट तकनीक वेब से पहले अस्तित्व में थी। कई लोकप्रिय नेटवर्क सॉफ्टवेयर एप्लिकेशन सॉकेट पर भरोसा करते हैं।
सॉकेट तकनीक आपके नेटवर्क के लिए क्या कर सकती है
एक सॉकेट सॉफ्टवेयर के ठीक दो टुकड़ों के बीच एक सिंगल कनेक्शन का प्रतिनिधित्व करता है (एक पॉइंट-टू-पॉइंट कनेक्शन)। दो से अधिक सॉफ्टवेयर क्लाइंट/सर्वर या डिस्ट्रिब्यूटेड सिस्टम का उपयोग करके कई सॉकेट्स का उपयोग करके संवाद कर सकते हैं। उदाहरण के लिए, सर्वर पर बने सॉकेट्स के एक समूह का उपयोग करके कई वेब ब्राउज़र एक साथ एक ही वेब सर्वर के साथ संवाद कर सकते हैं।
सॉकेट-आधारित सॉफ्टवेयर आमतौर पर नेटवर्क पर दो अलग-अलग कंप्यूटर पर चलता है, लेकिन सॉकेट का उपयोग एक ही कंप्यूटर पर स्थानीय रूप से (इंटरप्रोसेस) संवाद करने के लिए भी किया जा सकता है। सॉकेट द्विदिश होते हैं, जिसका अर्थ है कि कनेक्शन का कोई भी पक्ष डेटा भेजने और प्राप्त करने दोनों में सक्षम है।
कभी-कभी संचार शुरू करने वाले एप्लिकेशन को क्लाइंट कहा जाता है और दूसरे एप्लिकेशन को सर्वर, लेकिन यह शब्दावली पीयर-टू-पीयर नेटवर्किंग में भ्रम पैदा करती है और आमतौर पर इससे बचा जाना चाहिए।
सॉकेट APIs और लाइब्रेरी
इंटरनेट पर कई लाइब्रेरी मौजूद हैं जो मानक एप्लिकेशन प्रोग्रामिंग इंटरफेस (APIs) को लागू करती हैं। पहला मुख्यधारा पैकेज, बर्कले सॉकेट लाइब्रेरी, UNIX सिस्टम पर व्यापक रूप से उपयोग में है।
एक अन्य सामान्य API माइक्रोसॉफ्ट ऑपरेटिंग सिस्टम के लिए विंडोज सॉकेट्स (WinSock) लाइब्रेरी है। अन्य कंप्यूटर प्रौद्योगिकियों के सापेक्ष, सॉकेट APIs परिपक्व हैं। WinSock 1993 से उपयोग में है और बर्कले सॉकेट 1982 से।
सॉकेट APIs अपेक्षाकृत छोटे और सरल हैं। कई फ़ंक्शन फ़ाइल इनपुट/आउटपुट रूटीन में उपयोग किए जाने वाले के समान हैं जैसे read(), write(), और close()। उपयोग करने के लिए वास्तविक फ़ंक्शन कॉल प्रोग्रामिंग भाषा और चुनी गई सॉकेट लाइब्रेरी पर निर्भर करते हैं।
सॉकेट इंटरफेस प्रकार
सॉकेट इंटरफेस को तीन श्रेणियों में विभाजित किया जा सकता है:
- स्ट्रीम सॉकेट्स: यह सबसे सामान्य प्रकार है। दो संचार पक्ष पहले एक सॉकेट कनेक्शन स्थापित करते हैं, जिसके बाद उस कनेक्शन के माध्यम से पारित कोई भी डेटा उसी क्रम में पहुंचने की गारंटी देता है जिसमें इसे भेजा गया था (कनेक्शन-ओरिएंटेड प्रोग्रामिंग मॉडल का उपयोग करके)।
- डेटाग्राम सॉकेट्स: कनेक्शन-लेस सेमेन्टिक्स प्रदान करते हैं। डेटाग्राम के साथ, कनेक्शन स्ट्रीम के साथ स्पष्ट के बजाय निहित होते हैं। कोई भी पक्ष आवश्यकतानुसार डेटाग्राम भेजता है और दूसरे की प्रतिक्रिया की प्रतीक्षा करता है। संदेश ट्रांसमिशन में खो सकते हैं या क्रम से बाहर प्राप्त हो सकते हैं; एप्लिकेशन इन समस्याओं से निपटता है, सॉकेट नहीं। डेटाग्राम सॉकेट को लागू करने से कुछ एप्लिकेशन को स्ट्रीम सॉकेट का उपयोग करने की तुलना में प्रदर्शन को बढ़ावा और अतिरिक्त लचीलापन मिल सकता है।
- रॉ सॉकेट्स: TCP और UDP जैसे मानक प्रोटोकॉल के लिए लाइब्रेरी के बिल्ट-इन सपोर्ट को बायपास करते हैं। रॉ सॉकेट्स का उपयोग कस्टम लो-लेवल प्रोटोकॉल डेवलपमेंट के लिए किया जाता है।
नेटवर्क प्रोटोकॉल में सॉकेट सपोर्ट
आधुनिक नेटवर्क सॉकेट आमतौर पर IP, TCP, और UDP इंटरनेट प्रोटोकॉल के साथ संयोजन में उपयोग किए जाते हैं। इंटरनेट प्रोटोकॉल के लिए सॉकेट लागू करने वाली लाइब्रेरी स्ट्रीम के लिए TCP, डेटाग्राम के लिए UDP, और रॉ सॉकेट्स के लिए IP का उपयोग करती हैं।
इंटरनेट पर संवाद करने के लिए, IP सॉकेट लाइब्रेरी विशिष्ट कंप्यूटरों की पहचान करने के लिए IP पते का उपयोग करती हैं। इंटरनेट के कई हिस्से नेमिंग सर्विस के साथ काम करते हैं, ताकि उपयोगकर्ता और सॉकेट प्रोग्रामर कंप्यूटर के साथ नाम (उदाहरण के लिए, thiscomputer.wireless.lifewire.com) के बजाय पते (उदाहरण के लिए, 208.185.127.40) से काम कर सकें।
स्ट्रीम और डेटाग्राम सॉकेट कई एप्लिकेशन को एक दूसरे से अलग करने के लिए IP पोर्ट नंबर का भी उपयोग करते हैं। उदाहरण के लिए, इंटरनेट पर वेब ब्राउज़र वेब सर्वर के साथ सॉकेट संचार के लिए डिफ़ॉल्ट रूप से पोर्ट 80 का उपयोग करना जानते हैं।