| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # -*- 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秒
|