PHP में नेटवर्क प्रोग्रामिंग: सॉकेट से WebSockets तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में नेटवर्क प्रोग्रामिंग: सॉकेट से WebSockets तक

\n\n

जब हम PHP के बारे में बात करते हैं, तो सबसे पहले जो बात दिमाग में आती है, वह है वेब डेवलपमेंट: फॉर्म प्रोसेसिंग, HTML जनरेशन, डेटाबेस के साथ काम करना। लेकिन PHP इससे कहीं अधिक है। क्या आपने कभी सोचा है कि आपकी PHP स्क्रिप्ट सिर्फ HTTP अनुरोधों का "जवाब देने वाली" नहीं, बल्कि एक पूर्ण सर्वर बन सकती है, जो सीधे सॉकेट के माध्यम से अन्य प्रोग्रामों से संवाद करती है? यह चैट सर्वर, गेमिंग लॉबी, मॉनिटरिंग सिस्टम और IoT उपकरणों की दुनिया का द्वार खोलता है।

\n\n

इस लेख में, हम गुलाबी चश्मा उतारेंगे और वास्तविक उदाहरणों के साथ PHP में नेटवर्क प्रोग्रामिंग को समझेंगे। आप जानेंगे कि सॉकेट क्या हैं, PHP को पोर्ट कैसे सुनना है, TCP और UDP पर डेटा कैसे भेजना और प्राप्त करना है, और WebSockets के जादू को भी छूएंगे। चलिए शुरू करते हैं!

\n\n

सॉकेट क्या है और PHP को इसकी आवश्यकता क्यों है?

\n\n

सॉकेट (socket) प्रक्रियाओं के बीच डेटा के आदान-प्रदान के लिए एक सॉफ्टवेयर इंटरफ़ेस है, जो एक ही मशीन या नेटवर्क पर अलग-अलग कंप्यूटरों पर चल सकती हैं। एक टेलीफोन रिसीवर की कल्पना करें: आपके पास एक नंबर (IP पता) और एक पोर्ट (एक्सटेंशन नंबर) है। आप रिसीवर उठाते हैं (सॉकेट बनाते हैं), नंबर डायल करते हैं (कनेक्ट होते हैं) और बात करते हैं (डेटा ट्रांसफर करते हैं)।

\n\n

PHP में, सॉकेट को sockets एक्सटेंशन के माध्यम से लागू किया जाता है। यह आमतौर पर डिफ़ॉल्ट रूप से अक्षम होता है, लेकिन इसे सक्षम करना आसान है। PHP में नेटवर्क प्रोग्रामिंग आपको बनाने की अनुमति देता है:

\n\n
    \n
  • TCP सर्वर और क्लाइंट (उदाहरण के लिए, चैट या किसी अन्य सेवा के साथ डेटा एक्सचेंज के लिए)।
  • \n
  • UDP एप्लिकेशन (स्ट्रीमिंग, मॉनिटरिंग, जहां पैकेट का खो जाना महत्वपूर्ण नहीं है)।
  • \n
  • WebSocket सर्वर (ब्राउज़र में रीयल-टाइम एप्लिकेशन के लिए)।
  • \n
\n\n

मुख्य लाभ यह है कि आप C, Java या Node.js पर स्विच किए बिना PHP के परिचित वातावरण में रहते हैं। बेशक, उच्च-लोड सिस्टम के लिए PHP आदर्श नहीं है (सिंगल-थ्रेडेड होने के कारण), लेकिन प्रोटोटाइप, आंतरिक टूल या कम लोड के लिए यह बिल्कुल सही है।

\n\n

PHP पर TCP सर्वर बनाना

\n\n

चलिए क्लासिक से शुरू करते हैं: एक TCP सर्वर जो कनेक्शन स्वीकार करता है और अभिवादन भेजता है। यह किसी भी php सॉकेट एप्लिकेशन का आधार है।

\n\n

चरण 1. सॉकेट बनाना

\n

फंक्शन socket_create() पहला कदम है। यह तीन पैरामीटर लेता है: प्रोटोकॉल फैमिली (IPv4 के लिए AF_INET), सॉकेट प्रकार (TCP के लिए SOCK_STREAM) और प्रोटोकॉल (0 — सिस्टम को चुनने दें)।

\n\n
<?php\n// TCP सॉकेट बनाएं\n$socket = socket_create(AF_INET, SOCK_STREAM, 0);\nif ($socket === false) {\n    echo "सॉकेट बनाने में त्रुटि: " . socket_strerror(socket_last_error()) . "\\n";\n    exit;\n}\necho "सॉकेट सफलतापूर्वक बनाया गया।\\n";\n?>
\n\n

चरण 2. पते और पोर्ट से बाइंड करना

\n

socket_bind() का उपयोग करें। IP पता (0.0.0.0 — सभी इंटरफ़ेस सुनें) और पोर्ट (उदाहरण के लिए, 8080) निर्दिष्ट करें।

\n\n
<?php\n$address = '0.0.0.0';\n$port = 8080;\n\nif (socket_bind($socket, $address, $port) === false) {\n    echo "बाइंड करने में त्रुटि: " . socket_strerror(socket_last_error($socket)) . "\\n";\n    exit;\n}\necho "सॉकेट $address:$port से बाइंड हो गया\\n";\n?>
\n\n

चरण 3. इनकमिंग कनेक्शन सुनना

\n

socket_listen() के साथ सॉकेट को सुनने के मोड में डालें। दूसरा पैरामीटर कनेक्शन कतार की अधिकतम लंबाई है।

\n\n
<?php\nif (socket_listen($socket, 5) === false) {\n    echo "सुनने में त्रुटि: " . socket_strerror(socket_last_error($socket)) . "\\n";\n    exit;\n}\necho "सर्वर शुरू हो गया, कनेक्शन की प्रतीक्षा कर रहा है...\\n";\n?>
\n\n

चरण 4. क्लाइंट को स्वीकार करना

\n

ब्लॉकिंग फंक्शन socket_accept()। यह तब तक प्रतीक्षा करता है जब तक कोई कनेक्ट न हो जाए, और उस क्लाइंट के साथ संवाद करने के लिए एक नया सॉकेट लौटाता है।

\n\n
<?php\nwhile (true) {\n    $client = socket_accept($socket);\n    if ($client === false) {\n        echo "कनेक्शन स्वीकार करने में त्रुटि: " . socket_strerror(socket_last_error($socket)) . "\\n";\n        break;\n    }\n\n    echo "नया क्लाइंट कनेक्ट हुआ।\\n";\n\n    // से                

ब्लॉग

पुस्तक अनुशंसाएँ