Python 中的資料報
資料塊透過使用者資料報協議或 UDP 協議在客戶端和伺服器之間移動。這兩個通訊端點需要 IP 地址和埠號來建立通訊。一個端點稱為傳送者,另一個端點稱為接收者。在此協議中,傳送者不跟蹤已傳送的資料包,接收者可以選擇是否接收所有資料包。
傳送者程式
以下 Python 程式使用 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: # buffer size is 1024 bytes data, addr = sock.recvfrom(1024) print("Received message:", data)
輸出
執行以上程式碼會得到以下結果 -
Received message: Hello UDP!
廣告