<पी> IPv4 एड्रेस के बारे में हम सभी जानते हैं। अब, IPv4 पतों की समाप्ति के साथ, IPv6 को एक बड़ा पता स्थान प्रदान करने के लिए पेश किया गया है। <पी> आइए C भाषा में सॉकेट के लिए IPv6 पतों के कार्यान्वयन के बारे में चर्चा करें। सॉकेट प्रोग्रामिंग में IPv6 पतों को समझना और लागू करना IPv6-सक्षम नेटवर्क में निर्बाध संचार को सक्षम बनाता है और अनुकूलता सुनिश्चित करता है। IPv6 पते को समझना
<पी> IPv6 पते इंटरनेट प्रोटोकॉल संस्करण 6 (IPv6) का एक अभिन्न अंग हैं और नेटवर्क पर उपकरणों की पहचान और पता लगाने में बहुत महत्वपूर्ण भूमिका निभाते हैं। IPv4 पतों की समाप्ति के साथ, सीमाओं को दूर करने और काफी बड़ा पता स्थान प्रदान करने के लिए IPv6 को पेश किया गया था। IPv6 पते 128-बिट संख्या हैं। इसके परिणामस्वरूप कुल 2^128 अद्वितीय पते प्राप्त होते हैं। <पी> IPv6 पते की संरचना को इस प्रकार दर्शाया गया है: <पी> आआ:आआ:आआ:आआ:आआ:आआ:आआ:आआ:आआ <पी> यहां, प्रत्येक "ए" 4-अंकीय हेक्साडेसिमल संख्या का प्रतिनिधित्व करता है जो 0000 से एफएफएफएफ तक होता है। <पी> IPV6 एड्रेस प्रतिनिधित्व में 16-बिट ब्लॉक के भीतर अग्रणी शून्य को छोड़ दिया जाता है। उदाहरण के लिए, "2001:0DB8:0000:0000:0000:0000:0000:0001" पते को "2001:DB8::1" के रूप में लिखा जा सकता है। "::" संकेतन अधिक संक्षिप्त प्रतिनिधित्व की अनुमति देता है, विशेष रूप से शून्य की लंबी श्रृंखला वाले पतों के लिए। हालाँकि, हमें इसका उपयोग सावधानी से करना चाहिए क्योंकि जब कई "::" घटनाएँ संभव होती हैं तो यह अस्पष्टता ला सकता है। उस परिदृश्य में, हमें स्पष्टता बनाए रखने के लिए पते का पूरी तरह से विस्तार करना चाहिए। <पी> IPv6 पते केस-असंवेदनशील होते हैं जो हेक्साडेसिमल अंकों में अपरकेस और लोअरकेस दोनों अक्षरों की अनुमति देते हैं। हालाँकि, निरंतरता के लिए छोटे अक्षरों का उपयोग करने की परंपरा है। IPv6 पते नेटवर्क इंटरफेस की पहचान करने, पैकेटों को रूट करने और उपकरणों के बीच संचार को सक्षम करने सहित विभिन्न उद्देश्यों को पूरा करते हैं। उन्हें डायनेमिक होस्ट कॉन्फ़िगरेशन प्रोटोकॉल संस्करण 6 (डीएचसीपीवी6) जैसे प्रोटोकॉल के माध्यम से मैन्युअल रूप से या स्वचालित रूप से डिवाइसों को सौंपा जाता है। इसलिए, C में सॉकेट के लिए IPv6 पते को लागू करना महत्वपूर्ण है क्योंकि यह IPv6-सक्षम नेटवर्क में निर्बाध संचार को सक्षम बनाता है जो उपकरणों की संख्या में वृद्धि करने में मदद करता है और विकसित इंटरनेट बुनियादी ढांचे के साथ संगतता सुनिश्चित करता है।C में सॉकेट के लिए IPv6 पते को लागू करने के चरण
<पी> आइए C भाषा में सॉकेट के लिए IPv6 पतों को लागू करने के तरीकों के बारे में निम्नलिखित चरणों पर विचार करें:- सबसे पहले, हमें आवश्यक हेडर को शामिल करना होगा जो हमारे C प्रोग्राम में सॉकेट के साथ काम करने के लिए संरचना और फ़ंक्शन प्रदान करते हैं।
- फिर, हमें एक सॉकेट बनाना होगा। IPv6 सॉकेट बनाने के लिए हमें सॉकेट() फ़ंक्शन का उपयोग करना होगा। फिर, हम डोमेन को AF_INET6 और प्रकार को TCP के लिए SOCK_STREAM या UDP के लिए SOCK_DGRAM के रूप में निर्दिष्ट करते हैं।
- फिर, सॉकेट को बाइंड करें। हम बाइंड() फ़ंक्शन का उपयोग करके सॉकेट को एक विशिष्ट IPv6 पते और पोर्ट के साथ जोड़ते हैं। फिर, हम "struct sockaddr_in6" नामक एक संरचना बनाते हैं और उसे जानकारी प्रदान करते हैं।
- फिर हम आने वाले कनेक्शन के लिए सॉकेट तैयार करने के लिए लिसन() फ़ंक्शन का उपयोग करके कनेक्शन सुनते हैं।
- अंत में, कनेक्शन स्वीकार करने के लिए, हम बाउंड सॉकेट पर आने वाले कनेक्शन स्वीकार करने के लिए एक्सेप्ट() फ़ंक्शन का उपयोग करते हैं जो एक नया सॉकेट फ़ाइल डिस्क्रिप्टर लौटाता है।
प्रोग्रामिंग उदाहरण 1:सॉकेट के लिए IPv6 पते लागू करें
<पी> #शामिल#शामिल
#शामिल
#शामिल
#शामिल
#शामिल करें
#शामिल
#शामिल
#बैकलॉग 5 को परिभाषित करें <पी> पूर्णांक मुख्य ()
{
int सर्वर_एफडी, न्यू_सॉकेट;
struct sockaddr_in6 सर्वर_addr, client_addr;
socklen_t client_addr_len; <पी> // हम IPv6 सॉकेट बनाते हैं
सर्वर_एफडी =सॉकेट (AF_INET6, SOCK_STREAM, 0);
यदि (server_fd ==-1)
{
पेरर ("सॉकेट निर्माण विफल");
बाहर निकलें (EXIT_FAILURE);
}
// हम सॉकेट को बांधते हैं
मेमसेट(&server_addr, 0, sizeof(server_addr));
सर्वर_addr.sin6_family =AF_INET6;
सर्वर_addr.sin6_port =htons (पोर्ट);
सर्वर_addr.sin6_addr =in6addr_any;
यदि (बाइंड (server_fd, (struct sockaddr*) और सर्वर_addr, sizeof (server_addr)) ==-1) {
पेरर ("सॉकेट बाइंड विफल");
बाहर निकलें (EXIT_FAILURE);
} <पी> Printf ("IPv6 पते पर कनेक्शन के लिए सुन रहा हूँ...\n"); <पी> // आने वाले कनेक्शनों को सुनें
अगर (सुनो (सर्वर_एफडी, बैकलॉग) ==-1) {
पेरर ("सॉकेट सुनना विफल");
बाहर निकलें (EXIT_FAILURE);
} <पी> प्रिंटफ ("आने वाले कनेक्शन की प्रतीक्षा में ...\n"); <पी> // हम कनेक्शन स्वीकार करते हैं
client_addr_len =sizeof (client_addr);
new_socket =स्वीकार करें (server_fd, (struct sockaddr*) और client_addr, और client_addr_len);
अगर (new_socket ==-1) {
पेरर ("सॉकेट स्वीकार विफल");
बाहर निकलें (EXIT_FAILURE);
} <पी> printf ("IPv6 पते पर कनेक्शन सफल! \n"); <पी> // क्लाइंट IPv6 पता कनवर्ट करें और प्रदर्शित करें
चार client_ip_str [INET6_ADDRSTRLEN];
inet_ntop (AF_INET6, और (client_addr.sin6_addr), client_ip_str, INET6_ADDRSTRLEN);
प्रिंटफ ("कनेक्टेड क्लाइंट आईपी:%s\n", client_ip_str); <पी> // अब हम सॉकेट बंद करते हैं
बंद करें (new_socket);
बंद करें (server_fd); <पी> वापसी 0;
} <पी> आउटपुट: पी> <पी> $ जीसीसी एसआरआर.सी -ओ एसआरआर
$ ./srr
IPv6 पते पर कनेक्शन सुन रहा हूँ...
आने वाले कनेक्शनों की प्रतीक्षा की जा रही है... <पी> स्पष्टीकरण: पी> <पी> इस प्रोग्रामिंग उदाहरण में, हम पहले एक IPv6 सॉकेट सेटअप करते हैं, इसे निर्दिष्ट पोर्ट से जोड़ते हैं, और फिर आने वाले कनेक्शनों को सुनते हैं। फिर, हम संदेश प्रदर्शित करते हैं जो इंगित करते हैं कि यह कनेक्शनों को सुन रहा है और आने वाले कनेक्शनों की प्रतीक्षा कर रहा है। जब कोई क्लाइंट सफलतापूर्वक कनेक्ट होता है, तो यह एक संदेश प्रिंट करता है जो कनेक्शन की पुष्टि करता है और क्लाइंट का IPv6 पता प्रदर्शित करता है। अंत में, हम सभी सॉकेट बंद कर देते हैं। यह प्रोग्रामिंग उदाहरण IPv6 नेटवर्क पर ग्राहकों के साथ संचार की अनुमति देता है।
निष्कर्ष
<पी> IPv6-सक्षम नेटवर्क में संचार को सक्षम करने के लिए C में सॉकेट के लिए IPv6 पतों का कार्यान्वयन महत्वपूर्ण है। इस लेख में, हमने IPv6 सॉकेट के निर्माण के बारे में बताया, इसे एक विशिष्ट पते और पोर्ट से जोड़ा, आने वाले कनेक्शनों को सुना, कनेक्शन स्वीकार किए, और क्लाइंट का IPv6 पता प्रदर्शित किया। इन चरणों का पालन करके और उचित कार्यों और संरचनाओं का उपयोग करके, हम C भाषा में IPv6 एड्रेस हैंडलिंग को सफलतापूर्वक लागू कर सकते हैं।लेखक के बारे में
<पी>