python udppinger client
时间: 2024-05-04 08:19:44 浏览: 10
以下是一个简单的Python UDP Pinger客户端的例子:
```python
import socket
import time
# 设置服务器IP地址和端口号
server_address = ('localhost', 12000)
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置超时时间为1秒钟
client_socket.settimeout(1)
# 循环发送10个ping消息
for i in range(10):
# 发送ping消息
message = 'Ping ' + str(i+1) + ' ' + time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
client_socket.sendto(message.encode(), server_address)
try:
# 接收pong消息
data, server = client_socket.recvfrom(1024)
# 计算延迟时间
delay = time.time() - float(data.decode().split()[2])
# 打印结果
print('Ping {} {} {:.3f}s'.format(i+1, data.decode().split()[2], delay))
except socket.timeout:
# 如果超时,则打印超时信息
print('Ping {} timeout'.format(i+1))
# 关闭UDP套接字
client_socket.close()
```
这个客户端会循环发送10个ping消息,每个消息包含一个计数器、当前时间戳和一个自定义的消息。客户端发送完每个ping消息后会等待1秒钟,如果在1秒钟内没有接收到服务器的pong消息,则认为超时,并打印超时信息。如果接收到服务器的pong消息,则计算延迟时间,并打印结果。最后,客户端关闭UDP套接字。