यूजर डेटाग्राम प्रोटोकॉल या UDP प्रोटोकॉल का उपयोग करके डेटा के टुकड़े क्लाइंट्स और सर्वर्स के बीच मूव करते हैं। दो कम्युनिकेटिंग एंडपॉइंट्स को कम्युनिकेशन स्थापित करने के लिए IP एड्रेस और पोर्ट नंबर की आवश्यकता होती है। एक एंडपॉइंट को सेंडर के रूप में जाना जाता है और दूसरे को रिसीवर के रूप में जाना जाता है। इस प्रोटोकॉल में, सेंडर भेजे गए पैकेट्स का ट्रैक नहीं रखता और यह रिसीवर पर निर्भर करता है कि वह सभी पैकेट्स को स्वीकार करे या नहीं।
सेंडर प्रोग्राम
नीचे दिया गया पायथन प्रोग्राम सेंडर का प्रोग्राम बनाने के लिए socket मॉड्यूल का उपयोग करता है। हम IP एड्रेस और पोर्ट के लिए वेरिएबल्स घोषित करते हैं। फिर इसमें एक मैसेज जोड़ते हैं। sendto() का उपयोग मैसेज को IP एड्रेस और पोर्ट नंबर के साथ संयोजित करने के लिए किया जाता है।
उदाहरण
import socket
UDP_IP = "localhost"
UDP_PORT = 5050
MESSAGE = "Hello UDP!"
print("Sent Message:", MESSAGE)
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(bytes(MESSAGE, "utf-8"), (UDP_IP, UDP_PORT))
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
Sent Message: Hello UDP!
रिसीवर प्रोग्राम
इसी तरह, हम रिसीवर प्रोग्राम बनाते हैं जो सेंडर प्रोग्राम द्वारा भेजे गए मैसेज को प्राप्त करेगा। नीचे दिए गए प्रोग्राम में मैसेज का आकार 1024 बाइट्स तक सीमित है। bind() फ़ंक्शन IP और पोर्ट को प्राप्त डेटा से बांधता है।
उदाहरण
import socket
UDP_IP = "localhost"
UDP_PORT = 5050
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((UDP_IP, UDP_PORT))
while True:
# बफर साइज 1024 बाइट्स है
data, addr = s.recvfrom(1024)
print("Received message:", data)
आउटपुट
उपरोक्त कोड चलाने पर निम्न परिणाम मिलता है:
Received message: Hello UDP!