कंप्यूटर नेटवर्किंग के लिए सॉकेट प्रोग्रामिंग का अवलोकन

एक सॉकेट कंप्यूटर नेटवर्क प्रोग्रामिंग की सबसे मौलिक तकनीकों में से एक है। सॉकेट नेटवर्क सॉफ़्टवेयर अनुप्रयोगों को नेटवर्क हार्डवेयर और ऑपरेटिंग सिस्टम में बनाए गए मानक तंत्र का उपयोग करके संवाद करने की अनुमति देते हैं।

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

आपके नेटवर्क के लिए क्या सॉकेट कर सकते हैं

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

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

सॉकेट एपीआई और पुस्तकालयों

इंटरनेट पर मानक अनुप्रयोग प्रोग्रामिंग इंटरफेस (एपीआई) लागू करने वाली कई पुस्तकालय मौजूद हैं। पहला मुख्यधारा पैकेज - बर्कले सॉकेट लाइब्रेरी अभी भी यूनिक्स सिस्टम पर व्यापक रूप से उपयोग में है। माइक्रोसॉफ्ट ऑपरेटिंग सिस्टम के लिए विंडोज सॉकेट्स (विनसॉक) लाइब्रेरी एक और बहुत आम एपीआई है। अन्य कंप्यूटर प्रौद्योगिकियों से संबंधित, सॉकेट एपीआई काफी परिपक्व हैं: 1 99 3 से विनसॉक उपयोग में है और 1 9 82 से बर्कले सॉकेट्स का उपयोग किया जा रहा है।

सॉकेट एपीआई अपेक्षाकृत छोटे और सरल हैं। कई फ़ंक्शन फ़ाइल इनपुट / आउटपुट रूटीन जैसे read () , लिखें () , और close () में उपयोग किए गए समान होते हैं। । उपयोग करने के लिए वास्तविक फ़ंक्शन कॉल प्रोग्रामिंग भाषा और सॉकेट लाइब्रेरी पर निर्भर करता है।

सॉकेट इंटरफ़ेस प्रकार

सॉकेट इंटरफेस को तीन श्रेणियों में विभाजित किया जा सकता है:

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

नेटवर्क प्रोटोकॉल में सॉकेट समर्थन

आधुनिक नेटवर्क सॉकेट आमतौर पर इंटरनेट प्रोटोकॉल - आईपी, टीसीपी, और यूडीपी के संयोजन के साथ प्रयोग किया जाता है। इंटरनेट प्रोटोकॉल के लिए सॉकेट को लागू करने वाले पुस्तकालय धाराओं के लिए टीसीपी, डेटाग्राम के लिए यूडीपी और कच्चे सॉकेट के लिए आईपी स्वयं का उपयोग करते हैं।

इंटरनेट पर संवाद करने के लिए, आईपी सॉकेट पुस्तकालय विशिष्ट कंप्यूटर की पहचान के लिए आईपी ​​पते का उपयोग करते हैं। इंटरनेट के कई हिस्सों नामकरण सेवाओं के साथ काम करते हैं, ताकि उपयोगकर्ता और सॉकेट प्रोग्रामर कंप्यूटर के साथ नाम ( उदाहरण के लिए , "thiscomputer.wireless.about.com") पते के बजाय काम कर सकें ( उदाहरण के लिए , 208.185.127.40)। स्ट्रीम और डेटाग्राम सॉकेट एक दूसरे से कई अनुप्रयोगों को अलग करने के लिए आईपी पोर्ट नंबर का भी उपयोग करते हैं। उदाहरण के लिए, इंटरनेट पर वेब ब्राउज़र वेब सर्वर के साथ सॉकेट संचार के लिए डिफ़ॉल्ट रूप से पोर्ट 80 का उपयोग करना जानते हैं।