# -*- coding: utf-8 -*- # socket 监测远程服务器是否在线 import socket import time def check_connection(ip, port, timeout=3): try: with socket.create_connection((ip, port), timeout): return True except OSError: return False def measure_delay(ip, port, timeout=3): start_time = time.time() try: with socket.create_connection((ip, port), timeout): # 发送一个简单的请求,例如 HTTP 请求的开始部分 message = "GET / HTTP/1.1\r\nHost: {}\r\n\r\n".format(ip) sock = socket.create_connection((ip, port), timeout) sock.sendall(message.encode()) # 接收响应 sock.recv(4096) # 计算总的往返时间 end_time = time.time() return (end_time - start_time) * 1000 # 转换为毫秒 except OSError as e: print(f"Error: {e}") return None # 远程服务器的 IP 地址和端口 remote_ip = 'https://dis.dt-ok.cn' # 替换为远程服务器的 IP 地址 remote_port = 8888 # 替换为远程服务器的端口 # 循环10次,每次间隔1秒 for i in range(10): delay = measure_delay(remote_ip, remote_port) if delay is not None: print(f"Attempt {i + 1}: Connection is active. Delay: {delay:.2f} ms") else: print(f"Attempt {i + 1}: Connection is not active.") time.sleep(1) # 等待1秒