请给我一个udp通信协议示例
时间: 2024-02-21 15:00:53 浏览: 61
这里是一个简单的UDP通信协议示例:
服务端代码:
```python
import socket
# 创建UDP套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定IP地址和端口号
server_address = ('127.0.0.1', 8888)
server_socket.bind(server_address)
print('UDP服务器已启动,等待客户端连接...')
while True:
# 接收客户端数据
data, client_address = server_socket.recvfrom(1024)
print('接收到来自客户端{}的数据:{}'.format(client_address, data.decode()))
# 发送响应数据
response_data = '我收到了你的消息:{}'.format(data.decode())
server_socket.sendto(response_data.encode(), client_address)
```
客户端代码:
```python
import socket
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据到服务器
server_address = ('127.0.0.1', 8888)
message = 'Hello, UDP!'
client_socket.sendto(message.encode(), server_address)
# 接收服务器响应数据
data, server_address = client_socket.recvfrom(1024)
print('收到来自服务器{}的响应数据:{}'.format(server_address, data.decode()))
# 关闭UDP套接字
client_socket.close()
```
在此示例中,服务端和客户端都创建了UDP套接字。服务端使用`socket.bind()`方法绑定了IP地址和端口号,然后使用`socket.recvfrom()`方法接收客户端发送的数据,并使用`socket.sendto()`方法发送响应数据。客户端使用`socket.sendto()`方法发送数据到服务端,并使用`socket.recvfrom()`方法接收服务器响应数据。注意,UDP是无连接的,因此客户端不需要先连接服务器就可以发送数据。
阅读全文