什么是UDP
用户数据报协议(UDP:User Datagram Protocol)是一个简单的面向数据报的通信协议。UDP只提供数据的不可靠传递,它一旦把应用程序发给网络层的数据发送出去,就不保留数据备份。
UDP避免了协议栈中执行错误检查和纠正处理的开销,适用于对时间有较高要求的应用程序,因为某些场景下丢弃数据包比等待或重传导致延迟更可取。流媒体、在线游戏流量通常使用UDP传输。
UDP编程流程

案列:
UDP服务端:
python
import socket
# 1、Create a UDP socket 创建UPD socket
#绑定IP地址和端口号
#接收来自客户端的数据
#发送数据给客户端
#关闭socket
udp_server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_server.bind(('0.0.0.0', 8888))
while True:
data, addr = udp_server.recvfrom(1024)
addr_ip = addr[0]
addr_port = addr[1]
print(f"接收到来自ip:{addr_ip}:{addr_port}的数据:{data.decode()}")
udp_server.sendto(f"Hello, client!,接收到你的消息了!".encode(), addr)
udp_server.close()
UDP客户端
python
import socket
# create a client UDP socket
#发送数据、接收数据都需要绑定IP地址和端口号
#关闭套接字后,不能再发送和接收数据
udp_client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
while True:
data = input("请输入要发送的数据:")
udp_client.sendto(data.encode('utf-8'), ("127.0.0.1", 8888))
data, addr = udp_client.recvfrom(1024)
print(f"接收到的数据:{data.decode('utf-8')}")
udp_client.close()