Computer >> Máy Tính >  >> Lập trình >> Python

Datagram bằng Python

Các đoạn dữ liệu di chuyển giữa các máy khách và máy chủ bằng cách sử dụng Giao thức Datagram của Người dùng hoặc giao thức UDP. Hai điểm cuối giao tiếp cần địa chỉ IP và số cổng để thiết lập giao tiếp. Một điểm cuối được gọi là người gửi và điểm cuối còn lại được gọi là người nhận. Trong giao thức này, người gửi không theo dõi các gói đã gửi và việc chấp nhận hay không chấp nhận tất cả các gói là tùy thuộc vào người nhận.

Chương trình người gửi

Chương trình python dưới đây sử dụng mô-đun socket để tạo chương trình của người gửi. Chúng tôi khai báo các biến cho địa chỉ IP và Cổng. Sau đó, thêm một tin nhắn vào nó. Sendto () được sử dụng để kết hợp thư với địa chỉ IP và số cổng.

Ví dụ

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))

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Sent Message: Hello UDP!

Chương trình người nhận

Tương tự, chúng ta tạo chương trình người nhận sẽ nhận tin nhắn do chương trình người gửi gửi. Kích thước của thông báo trong chương trình dưới đây được giới hạn ở 1024 byte. Hàm bind () liên kết IP và cổng với dữ liệu được nhận.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Received message: Hello UDP!