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!

更新日期: 2019 年 10 月 17 日

497 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始
廣告