📅  最后修改于: 2023-12-03 15:35:26.960000             🧑  作者: Mango
UDP(User Datagram Protocol)是一种简单的面向数据报的传输层协议。它不进行可靠性的保证和流量控制,但是对于某些需要速度较快,但数据可靠性要求不高的应用程序非常有用。UDP不会进行拥塞控制,因此会尽可能快地把所有数据都传送出去,因此常被用于直播、文件传输等需要高速传输的场合。
import socket
def udp_server():
server_address = ('localhost', 8888)
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_socket.bind(server_address)
print('UDP server start')
while True:
data, client_address = server_socket.recvfrom(1024)
print('receive data from %s:%s: %s' % (client_address[0], client_address[1], data.decode()))
server_socket.sendto(data, client_address)
def udp_client():
server_address = ('localhost', 8888)
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print('UDP client start')
while True:
message = input('Please input your message: ')
if message == 'exit':
break
client_socket.sendto(message.encode(), server_address)
data, server_address = client_socket.recvfrom(1024)
print('receive data from %s:%s: %s' % (server_address[0], server_address[1], data.decode()))
if __name__ == '__main__':
udp_server()
udp_client()
上面是使用Python socket库实现的一个UDP客户端和服务器的简单通信。在服务器端,首先绑定IP地址和端口号,然后进入循环,等待客户端发送数据。通过recvfrom函数接收客户端发送的数据,并使用sendto函数将数据发送回客户端。在客户端,先创建一个socket对象,再使用sendto函数发送数据到服务器,并等待服务器的响应结果。