Sockets का परिचय
Network communication की मूल बातें
Sockets का परिचय, CoddyKit पर C Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
सॉकेट क्या है
सॉकेट नेटवर्क संचार का एक अंतिम बिंदु है। POSIX प्रणालियों पर यह एक फ़ाइल डिस्क्रिप्टर होता है, जिससे आप पढ़ और लिख सकते हैं तथा दो प्रोग्राम नेटवर्क या उसी मशीन पर डेटा का आदान-प्रदान कर सकते हैं।
क्लाइंट-सर्वर मॉडल
अधिकांश नेटवर्क ऐप क्लाइंट-सर्वर मॉडल का उपयोग करते हैं:
- सर्वर किसी पते से जुड़ता है और कनेक्शन की प्रतीक्षा करता है
- क्लाइंट सर्वर से कनेक्शन शुरू करता है
कनेक्शन बनने के बाद दोनों पक्ष डेटा भेज और प्राप्त करते हैं।
TCP बनाम UDP
दो मुख्य ट्रांसपोर्ट प्रोटोकॉल:
- TCP (SOCK_STREAM): विश्वसनीय, क्रमबद्ध, कनेक्शन-आधारित
- UDP (SOCK_DGRAM): तेज़, कनेक्शन-रहित, पैकेट खो या क्रम से बाहर हो सकते हैं
शुद्धता के लिए TCP और कम-विलंबता वाली स्ट्रीमिंग के लिए UDP का उपयोग करें।
सॉकेट बनाना
socket() कॉल एक फ़ाइल डिस्क्रिप्टर लौटाती है। तर्क हैं: पता परिवार (AF_INET IPv4 के लिए), प्रकार (SOCK_STREAM TCP के लिए) और प्रोटोकॉल (डिफ़ॉल्ट के लिए 0)।
/* Conceptual: sockets need a network environment to run */
#include <sys/socket.h>
#include <netinet/in.h>
int create_tcp_socket(void) {
int fd = socket(AF_INET, SOCK_STREAM, 0);
/* fd < 0 means error; check with perror */
return fd;
}सॉकेट पते की संरचनाएँ
IPv4 पते का वर्णन struct sockaddr_in करता है, जिसमें परिवार, पोर्ट और IP पता होते हैं। फ़ंक्शन सामान्य struct sockaddr * लेते हैं, इसलिए आपको कास्ट करना पड़ता है।
#include <netinet/in.h>
void fill_addr(struct sockaddr_in *addr, unsigned short port) {
addr->sin_family = AF_INET;
addr->sin_port = htons(port); /* host to network short */
addr->sin_addr.s_addr = INADDR_ANY; /* all interfaces */
}बाइट क्रम महत्वपूर्ण है
नेटवर्क बिग-एंडियन (नेटवर्क बाइट क्रम) का उपयोग करते हैं। इनसे रूपांतरित करें:
htons/htonlहोस्ट से नेटवर्क (शॉर्ट/लॉन्ग)ntohs/ntohlनेटवर्क से होस्ट
पोर्ट और पते को हमेशा रूपांतरित करें, वरना आप गलत स्थान से संपर्क करेंगे।
IP पता रूपांतरण
inet_pton "127.0.0.1" जैसे टेक्स्ट IP को sin_addr में रखे बाइनरी रूप में बदलता है, और inet_ntop उसे प्रिंट करने के लिए वापस बदलता है।
#include <arpa/inet.h>
#include <netinet/in.h>
int set_ip(struct sockaddr_in *addr, const char *ip) {
return inet_pton(AF_INET, ip, &addr->sin_addr); /* returns 1 on success */
}सर्वर कॉल क्रम
एक TCP सर्वर सामान्यतः इस क्रम में कॉल करता है:
socket()बनानाbind()पते और पोर्ट से जोड़नाlisten()को निष्क्रिय अवस्था के रूप में चिह्नित करनाaccept()कनेक्शन प्राप्त करना
क्लाइंट कॉल क्रम
TCP क्लाइंट अधिक सरल होता है:
socket()बनानाconnect()सर्वर के पते तक पहुँचना
इसके बाद वह उसी डिस्क्रिप्टर पर send और recv कर सकता है।
भेजना और प्राप्त करना
send() और recv() (या सामान्य write() और read()) का उपयोग करें। दोनों माँगी गई मात्रा से कम बाइट भेज या प्राप्त कर सकते हैं, इसलिए वास्तविक कोड सभी डेटा संभाले जाने तक लूप चलता है।
रिटर्न मान हमेशा जाँचें
हर सॉकेट कॉल विफल हो सकती है। -1 लौटने पर errno सेट होता है; इसकी सूचना देने के लिए perror कॉल करें। recv का 0 लौटना बताता है कि दूसरा पक्ष कनेक्शन बंद कर चुका है। त्रुटि-जाँच ही मज़बूत नेटवर्किंग का आधार है।
त्वरित जाँच
सॉकेट की मूल बातें समझने की अपनी समझ जाँचें।
पुनरावृत्ति
आपने सॉकेट प्रोग्रामिंग की बुनियाद सीखी।
- सॉकेट नेटवर्क का अंतिम बिंदु और फ़ाइल डिस्क्रिप्टर है
- TCP (विश्वसनीय) या UDP (तेज़) वाला क्लाइंट-सर्वर मॉडल
sockaddr_inका उपयोगhtonsऔरinet_ptonके साथ करें- सर्वर: socket, bind, listen, accept। क्लाइंट: socket, connect
एआई शिक्षक के साथ C सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 39
- पाठ
- 144
अक्सर पूछे जाने वाले प्रश्न
क्या “Sockets का परिचय” पाठ निःशुल्क है?
हाँ—“Sockets का परिचय” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“Sockets का परिचय” में मैं क्या सीखूँगा?
Network communication की मूल बातें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“Sockets का परिचय” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Sockets का परिचय
- TCP Server
- TCP Client
- कई Clients संभालना