目錄
1、發送端
2、接收端
3、UDP廣播
1、發送端
from socket import *udp_socket = socket(AF_INET,SOCK_DGRAM)
udp_socket.bind(("127.0.0.1",3333))data_str = "UDP發送端數據"
data_bytes = data_str.encode("utf-8")
udp_socket.sendto(data_bytes,("127.0.0.1",8080))udp_socket.close()
2、接收端
from socket import *udp_socket = socket(AF_INET, SOCK_DGRAM)# 綁定本地的相關信息,如果一個網絡程序不綁定,則系統會隨機分配
# ip一般不用寫,表示本機的任何一個ip
udp_socket.bind(('', 8080))
print("服務器啟動,等待接收數據...")
# 等待接收對方發送的數據
recv_data = udp_socket.recvfrom(1024)
print(recv_data[0].decode('utf-8'))
print("發送方地址:", recv_data[1])udp_socket.close()

3、UDP廣播
發送端
import socketdef udp_broadcast_send():# 創建 UDP 套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 設置允許發送廣播udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)# 準備發送的消息send_content = "大家好,我是板燒雞腿堡"send_data = send_content.encode("utf-8")# 指定廣播地址和端口broadcast_address = ("192.168.3.255", 8080)# 發送廣播消息udp_socket.sendto(send_data, broadcast_address)print(f"已發送廣播消息: {send_content}")# 關閉套接字udp_socket.close()if __name__ == "__main__":udp_broadcast_send()
接收端
import socketdef udp_broadcast_receive():# 創建 UDP 套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)# 綁定本地地址和端口local_address = ("", 8080) # 空字符串表示綁定到所有可用接口udp_socket.bind(local_address)print("UDP 接收端啟動,等待廣播消息...")while True:# 接收廣播消息recv_data, client_address = udp_socket.recvfrom(1024)print(f"收到廣播消息: {recv_data.decode('utf-8')},來自: {client_address}")# 如果需要,可以在這里添加退出條件# break# 關閉套接字udp_socket.close()if __name__ == "__main__":udp_broadcast_receive()
