目录
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 socket
def 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 socket
def 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()