में सॉकेट प्रोग्रामिंग उन अनुप्रयोगों के बीच संचार के लिए उपयोग किया जाता है जो अलग-अलग चल रहे हैं । यह या तो कनेक्शन-उन्मुख या कनेक्शन रहित हो सकता है। कुल मिलाकर, सॉकेट क्लाइंट और सर्वर के बीच संबंध स्थापित करने का एक तरीका है। इस लेख में, मैं आपको सभी सॉकेट प्रोग्रामिंग के बारे में बताऊंगा।
इस विषय में नीचे विषय शामिल हैं:
- जावा में सॉकेट प्रोग्रामिंग क्या है?
- जावा में सॉकेट क्या है?
- क्लाइंट साइड प्रोग्रामिंग
- सर्वर साइड प्रोग्रामिंग
जावा में सॉकेट प्रोग्रामिंग क्या है?
सॉकेट प्रोग्रामिंग एक दूसरे से संवाद करने के लिए एक नेटवर्क पर दो नोड्स को जोड़ने का एक तरीका है। एक सॉकेट (नोड) एक विशेष पोर्ट पर एक आईपी पर सुनता है, जबकि अन्य सॉकेट कनेक्शन बनाने के लिए दूसरे तक पहुंचता है।
सर्वर श्रोता बनाता है सॉकेट जबकि क्लाइंट सर्वर तक पहुंचता है। सॉकेट और सर्वर सॉकेट कनेक्शन-उन्मुख सॉकेट प्रोग्रामिंग के लिए उपयोग किया जाता है।
अब आइए सॉकेट प्रोग्रामिंग की मूल अवधारणा को समझते हैं यानी सॉकेट।
जावा में सॉकेट क्या है?
सेवा मेरे सॉकेट में है नेटवर्क पर चलने वाले दो कार्यक्रमों के बीच दो-तरफ़ा संचार लिंक का एक समापन बिंदु है। ए सॉकेट एक पोर्ट संख्या के लिए बाध्य है ताकि टीसीपी परत उस एप्लिकेशन की पहचान कर सके जिसे डेटा भेजा जाना है।
एक समापन बिंदु एक आईपी पते और एक पोर्ट नंबर का एक संयोजन है। जावा प्लेटफ़ॉर्म में पैकेज एक वर्ग प्रदान करता है,सॉकेटयह आपके जावा प्रोग्राम और नेटवर्क पर एक अन्य प्रोग्राम के बीच दो-तरफ़ा कनेक्शन के एक तरफ लागू होता है। आपके जावा प्रोग्राम से किसी विशेष प्रणाली के विवरण को छिपाते हुए, क्लास एक प्लेटफ़ॉर्म-निर्भर कार्यान्वयन के शीर्ष पर बैठता है। मूल कोड पर निर्भर होने के बजाय कक्षा का उपयोग करके, आपके प्लेटफ़ॉर्म-स्वतंत्र फ़ैशन में नेटवर्क पर संचार कर सकता है।
अब जब आप जानते हैं कि जावा में सॉकेट क्या है, तो आगे बढ़ते हैं और समझते हैं कि क्लाइंट सर्वर के साथ कैसे संवाद करता है और सर्वर वापस कैसे आता है।
क्लाइंट साइड प्रोग्रामिंग
क्लाइंट-साइड प्रोग्रामिंग के मामले में, क्लाइंट पहले सर्वर के शुरू होने का इंतजार करेगा। एक बार सर्वर उठने और चलने के बाद, यह सर्वर को रिक्वेस्ट भेजेगा। उसके बाद, क्लाइंट सर्वर से प्रतिक्रिया की प्रतीक्षा करेगा। तो, यह क्लाइंट और सर्वर संचार का संपूर्ण तर्क है। अब ग्राहक के साइड और सर्वर साइड प्रोग्रामिंग को विस्तार से समझते हैं।
क्लाइंट अनुरोध आरंभ करने के लिए, आपको नीचे बताए गए चरणों का पालन करना होगा:
1. एक कनेक्शन स्थापित करें
एक सॉकेट कनेक्शन स्थापित करने के लिए पहला कदम है। सॉकेट कनेक्शन का अर्थ है कि दोनों मशीनों में एक-दूसरे के नेटवर्क स्थान (आईपी एड्रेस) और टीसीपी पोर्ट के बारे में जानकारी है।
आप नीचे दिए गए कथन की सहायता से एक सॉकेट बना सकते हैं:
सॉकेट सॉकेट = नया सॉकेट ('127.0.0.1', 5000)
यहाँ, पहला तर्क प्रतिनिधित्व करता है सर्वर का आईपी पता ।
जावा में यादृच्छिक स्ट्रिंग उत्पन्न करते हैं
दूसरा तर्क प्रतिनिधित्व करता है टीसीपी पोर्ट । (यह एक संख्या है जो यह दर्शाता है कि सर्वर पर कौन सा अनुप्रयोग चलना चाहिए।)
2. संचार
सॉकेट कनेक्शन पर संवाद करने के लिए, इनपुट और आउटपुट दोनों के लिए स्ट्रीम का उपयोग किया जाता है। कनेक्शन स्थापित करने और अनुरोध भेजने के बाद, आपको कनेक्शन बंद करने की आवश्यकता है।
3. कनेक्शन बंद करना
सर्वर को संदेश भेजे जाने के बाद सॉकेट कनेक्शन स्पष्ट रूप से बंद हो जाता है।
अब ग्राहक की तरफ से सॉकेट कनेक्शन को लागू करने के लिए जावा प्रोग्राम लिखने का तरीका देखें।
// एक जावा प्रोग्राम एक क्लायंटसाइड इंपोर्ट java.net के लिए। * इंपोर्ट java.io. * पब्लिक क्लास क्लायंटप्रोग्राम {// सॉकेट और इनपुट आउटपुट स्ट्रीम प्राइवेट सॉकेट सॉकेट = null प्राइवेट डाटाइन्फोर्सस्ट्रीम इनपुट = null + DataOutputStream आउट = null // कंस्ट्रक्टर आईपी एड्रेस और पोर्ट पब्लिक क्लाइंट (स्ट्रिंग एड्रेस, इंट पोर्ट) डालने के लिए {// एक कनेक्शन स्थापित करने का प्रयास करें {सॉकेट = नया सॉकेट (पता, पोर्ट) System.out.println ('कनेक्टेड') // टर्मिनल इनपुट से इनपुट लेता है = new DataInputStream (System.in) // आउटपुट को सॉकेट से बाहर भेजता है = नया DataOutputStream (socket.getOutputStream ())} catch (UnknownHostException u) {System.out.println (u)} catch (IOException i) {System.out .println (i)} // स्ट्रिंग को इनपुट से संदेश पढ़ने के लिए स्ट्रिंग = '' // तब तक पढ़ते रहें जब तक 'ओवर' इनपुट न हो जाए (जबकि (लाइन.इसेल्स) 'ओवर') {कोशिश {लाइन = input.readLine (! ) out.writeUTF (लाइन)} पकड़ (IOException i) {System.out.println (i)}} // कनेक्शन बंद करने की कोशिश {input.close () out.close () socket.close ()}} catch (IOException मैं ) {System.out.println (i)}} सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {क्लाइंट क्लाइंट = नया क्लाइंट (.0 127.0.0.1 ’, 5000)}}
अब, सर्वर-साइड प्रोग्रामिंग को लागू करें और फिर आउटपुट पर पहुंचें।
सर्वर साइड प्रोग्रामिंग
मूल रूप से, सर्वर अपनी वस्तु को तुरंत भेज देगा और ग्राहक के अनुरोध की प्रतीक्षा करेगा। क्लाइंट द्वारा अनुरोध भेजने के बाद, सर्वर प्रतिक्रिया के साथ वापस संचार करेगा।
सर्वर-साइड एप्लिकेशन को कोड करने के लिए, आपको दो सॉकेट चाहिए और वे इस प्रकार हैं:
सेवा मेरे ServerSocket जो ग्राहक के अनुरोधों का इंतजार करता है (जब एक ग्राहक एक नया सॉकेट बनाता है) ()
एक सादा पुराना सॉकेट ग्राहक के साथ संचार के लिए।
इसके बाद, आपको प्रतिक्रिया के साथ ग्राहक के साथ संवाद करने की आवश्यकता है।
संचार
getOutputStream () सॉकेट के माध्यम से आउटपुट भेजने के लिए विधि का उपयोग किया जाता है।
कनेक्शन बंद करें
सॉकेट बंद करने के साथ-साथ इनपुट / आउटपुट स्ट्रीम सब कुछ हो जाने के बाद कनेक्शन बंद करना महत्वपूर्ण है।
अब आइए सर्वर साइड में सॉकेट कनेक्शन को लागू करने के लिए जावा प्रोग्राम कैसे लिखें।
// सर्वर्साइड इंपोर्ट java.net के लिए एक जावा प्रोग्राम। * java.io आयात करें। * पब्लिक क्लास सर्वरसाइड {// सॉकेट और इनपुट स्ट्रीम प्राइवेट सॉकेट सॉकेट = null प्राइवेट सर्वर सॉकेट सर्वर = null प्राइवेट DataInputream को = null // कंस्ट्रक्टर के साथ प्रारंभ करें। port public server (int port) {// सर्वर शुरू करता है और एक कनेक्शन के लिए प्रतीक्षा करता है {सर्वर = नया ServerSocket (port) System.out.println ('Server start') System.out.println ('एक ग्राहक की प्रतीक्षा कर रहा है)। । ') सॉकेट = server.accept () System.out.println (' क्लाइंट स्वीकृत ') // क्लाइंट सॉकेट से इनपुट लेता है = नया DataInputStream (new BufferedInputStream (socket.getInputstream ())) स्ट्रिंग लाइन =' '/ / / 'ओवर' तक संदेश भेजा जाता है जब तक ((लाइन। असेंबल ('ओवर')) {कोशिश {लाइन = in.readUTF () System.out.println (लाइन)} कैच (IOException i) इस सिस्टम को पढ़ता है। out.println (i)}} System.out.println ('समापन कनेक्शन') // क्लोज कनेक्शन socket.close () in.close ()} कैच (IOException i) {System.out.println (i)}} सार्वजनिक स्थैतिक शून्य main (String [] args[]){ सर्वर सर्वर = नया सर्वर (5000)}}
क्लाइंट और सर्वर अंत दोनों को कॉन्फ़िगर करने के बाद, आप पहले सर्वर साइड प्रोग्राम को निष्पादित कर सकते हैं। उसके बाद, आपको क्लाइंट साइड प्रोग्राम चलाने और अनुरोध भेजने की आवश्यकता है। जैसे ही क्लाइंट एंड से रिक्वेस्ट भेजी जाएगी, सर्वर वापस जवाब देगा। नीचे स्नैपशॉट उसी का प्रतिनिधित्व करता है।
1. जब आप सर्वर साइड स्क्रिप्ट चलाते हैं, तो यह शुरू हो जाएगा और क्लाइंट के शुरू होने की प्रतीक्षा करेगा।
2. अगला, क्लाइंट कनेक्ट हो जाएगा और स्ट्रिंग के रूप में अनुरोध का आदान-प्रदान करेगा।
3. जब क्लाइंट अनुरोध भेजता है, तो सर्वर वापस जवाब देगा।
यह आपको जावा में सॉकेट प्रोग्राम को निष्पादित करने की आवश्यकता है। आप इन कार्यक्रमों को टर्मिनल विंडो या कमांड प्रॉम्प्ट पर भी निष्पादित कर सकते हैं। लेकिन, चूंकि ग्रहण अपनी विशेषताओं के साथ अच्छी तरह से उन्नत है, आप बस दोनों कार्यक्रमों को एक कंसोल पर निष्पादित कर सकते हैं।
यह जावा में सॉकेट प्रोग्रामिंग पर लेख के अंत में हमें लाता है। मुझे आशा है कि मैंने आपके ज्ञान पर कुछ प्रकाश डाला है सॉकेट प्रोग्रामिंग।
इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। हम आपकी यात्रा के हर कदम पर आपकी मदद करने के लिए यहां हैं, इस साक्षात्कार साक्षात्कार के अलावा बनने के लिए, हम एक पाठ्यक्रम के साथ आते हैं, जो छात्रों और पेशेवरों के लिए बनाया गया है, जो जावा डेवलपर बनना चाहते हैं।
क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया 'जावा में सॉकेट प्रोग्रामिंग' लेख के टिप्पणी अनुभाग में इसका उल्लेख करें और हम जल्द से जल्द आपको वापस कर देंगे।