编程实现基于UDP的PING py
时间: 2023-12-22 10:03:13 浏览: 76
以下是基于UDP的PING的Python程序实现:
```python
import time
import socket
# 设置参数
server_host = '127.0.0.1'
server_port = 12000
timeout = 1
# 创建UDP套接字
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 循环10次发送PING消息
for i in range(10):
# 记录发送时间
send_time = time.time()
# 发送PING消息
message = f'PING {i} {send_time} \r\n'
client_socket.sendto(message.encode(), (server_host, server_port))
# 设置超时时间
client_socket.settimeout(timeout)
try:
# 接收响应消息
data, server_address = client_socket.recvfrom(1024)
# 记录接收时间
receive_time = time.time()
# 计算RTT
rtt = (receive_time - send_time) * 1000
# 打印结果
print(f'PING {i} {server_address[0]}: seq={i} time={rtt:.3f}ms')
except socket.timeout:
# 超时未收到响应
print(f'PING {i} {server_host}: seq={i} timeout')
# 关闭UDP套接字
client_socket.close()
```
该程序通过循环10次发送PING消息,每次发送消息时记录发送时间,接收响应消息时记录接收时间,并计算RTT。如果在设置的超时时间内未收到响应,则认为该PING消息超时。最后打印每个PING消息的结果。
阅读全文