Python में सॉकेट के साथ कैसे काम करें?

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

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

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

Python में सॉकेट क्या हैं और ये कैसे काम करते हैं

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

आधुनिक नेटवर्क एप्लिकेशन Python सॉकेट का व्यापक रूप से उपयोग करते हैं। मैसेजिंग ऐप से लेकर ऑनलाइन गेम और डेटा शेयरिंग सर्विसेज तक — हर जगह सॉकेट के माध्यम से नेटवर्क संचार होता है।

नेटवर्क प्रोग्रामिंग की मूल अवधारणाएँ

Python में सॉकेट के साथ काम करने के लिए इन मुख्य अवधारणाओं को समझना ज़रूरी है:

  • IP पता — नेटवर्क में डिवाइस का अनोखा पता
  • पोर्ट — डिवाइस पर सेवा की पहचान करने वाला नंबर
  • TCP (Transmission Control Protocol) — विश्वसनीय डेटा ट्रांसफर प्रोटोकॉल
  • UDP (User Datagram Protocol) — तेज़ प्रोटोकॉल, लेकिन डिलीवरी की गारंटी नहीं

TCP एरर कंट्रोल के साथ डेटा की गारंटीड डिलीवरी सुनिश्चित करता है। UDP तेज़ होता है, लेकिन मैसेज डिलीवरी की गारंटी नहीं देता।

socket लाइब्रेरी को सेटअप और इम्पोर्ट करना

socket मॉड्यूल Python की स्टैंडर्ड लाइब्रेरी का हिस्सा है। सॉकेट के साथ काम शुरू करने के लिए बस इतना करना होता है:

import socket

किसी अतिरिक्त इंस्टॉलेशन की ज़रूरत नहीं है। socket लाइब्रेरी Python के सभी वर्जन में डिफ़ॉल्ट रूप से उपलब्ध है।

Python में TCP सर्वर बनाना

सर्वर की बेसिक इम्प्लीमेंटेशन

TCP सर्वर क्लाइंट से कनेक्शन स्वीकार करता है और उनके अनुरोधों को प्रोसेस करता है। आइए एक सरल इम्प्लीमेंटेशन देखें:

import socket

# TCP सॉकेट बनाना
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# एड्रेस और पोर्ट से बाइंड करना
server_socket.bind(('localhost', 12345))

# लिसनिंग शुरू करना (अधिकतम 5 कनेक्शन कतार में)
server_socket.listen(5)

print("सर्वर शुरू। कनेक्शन की प्रतीक्षा...")

while True:
    # कनेक्शन स्वीकार करना
    client_socket, address = server_socket.accept()
    print(f"{address} से कनेक्शन")
    
    # मैसेज प्राप्त करना
    message = client_socket.recv(1024).decode('utf-8')
    print(f"प्राप्त संदेश: {message}")
    
    # जवाब भेजना
    client_socket.send("सर्वर की ओर से नमस्ते!".encode('utf-8'))
    
    # क्लाइंट से कनेक्शन बंद करना
    client_socket.close()

सर्वर के काम करने की प्रक्रिया को समझना

उपरोक्त कोड में निम्नलिखित ऑपरेशन होते हैं:

  1. TCP प्रोटोकॉल का उपयोग करके एक सॉकेट बनाया जाता है
  2. सर्वर localhost एड्रेस और पोर्ट 12345 से बाइंड होता है
  3. क्लाइंट के कनेक्शन की प्रतीक्षा शुरू होती है
  4. क्लाइंट के कनेक्ट होने पर उसका मैसेज प्राप्त किया जाता है
  5. सर्वर जवाब भेजता है और कनेक्शन बंद कर देता है

मेथड socket.AF_INET IPv4 के उपयोग को दर्शाता है, और socket.SOCK_STREAM TCP प्रोटोकॉल को इंगित करता है।

TCP क्लाइंट डेवलपमेंट

TCP क्लाइंट सर्वर से कनेक्ट होता है और उसके साथ डेटा का आदान-प्रदान करता है। क्लाइंट का उदाहरण:

import socket

# क्लाइंट सॉकेट बनाना
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# सर्वर से कनेक्ट करना
client_socket.connect(('localhost', 12345))

# मैसेज भेजना
client_socket.send("नमस्ते, सर्वर!".encode('utf-8'))

# जवाब प्राप्त करना
response = client_socket.recv(1024).decode('utf-8')
print(f"सर्वर से जवाब: {response}")

# कनेक्शन बंद करना
client_socket.close()

क्लाइंट क्रियाओं का एक क्रम निष्पादित करता है: कनेक्ट करना, डेटा भेजना, जवाब प्राप्त करना और कनेक्शन बंद करना।

UDP प्रोटोकॉल के साथ काम करना

UDP डिलीवरी की गारंटी के बिना डेटा ट्रांसफर का तेज़ तरीका प्रदान करता है। यह इसे रियल-टाइम एप्लिकेशन के लिए उपयुक्त बनाता है।

UDP सर्वर


                    

ब्लॉग

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