ব্যবহারকারী ডেটাগ্রাম প্রোটোকল বা UDP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটার অংশগুলি সরানো হয়। যোগাযোগ স্থাপনের জন্য দুটি যোগাযোগের শেষ পয়েন্টের আইপি ঠিকানা এবং পোর্ট নম্বর প্রয়োজন। একটি শেষ বিন্দু প্রেরক হিসাবে পরিচিত এবং অন্যটি প্রাপক হিসাবে পরিচিত। এই প্রোটোকলে, প্রেরক প্রেরিত প্যাকেটের ট্র্যাক রাখে না এবং সমস্ত প্যাকেট গ্রহণ করা বা না করা তা প্রাপকের উপর নির্ভর করে।
প্রেরক প্রোগ্রাম
নীচের পাইথন প্রোগ্রামটি প্রেরকের প্রোগ্রাম তৈরি করতে সকেট মডিউল ব্যবহার করে। আমরা আইপি ঠিকানা এবং পোর্টের জন্য ভেরিয়েবল ঘোষণা করি। তারপর এটি একটি বার্তা যোগ করুন. sendto() আইপি ঠিকানা এবং পোর্ট নম্বরের সাথে বার্তাকে একত্রিত করতে ব্যবহৃত হয়।
উদাহরণ
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() ফাংশন আইপি এবং পোর্টকে প্রাপ্ত ডেটাতে আবদ্ধ করে।
উদাহরণ
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:
# buffer size is 1024 bytes
data, addr = sock.recvfrom(1024)
print("Received message:", data) আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
Received message: Hello UDP!