Files
sing-box-extended-mirror/test/testdata/openconnect/ocserv/echo_server.py
T

33 lines
925 B
Python
Raw Normal View History

2026-07-17 16:21:03 +08:00
#!/usr/bin/env python3
import socket
import threading
def echo(connection):
with connection:
while True:
data = connection.recv(65536)
if not data:
return
connection.sendall(data)
2026-07-18 09:40:17 +08:00
def echo_udp(connection):
while True:
data, address = connection.recvfrom(65536)
connection.sendto(data, address)
udp_listener = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_listener.bind(("0.0.0.0", 18080))
threading.Thread(target=echo_udp, args=(udp_listener,), daemon=True).start()
tcp_listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
tcp_listener.bind(("0.0.0.0", 18080))
tcp_listener.listen()
2026-07-17 16:21:03 +08:00
print("openconnect echo ready", flush=True)
while True:
2026-07-18 09:40:17 +08:00
accepted, _ = tcp_listener.accept()
2026-07-17 16:21:03 +08:00
threading.Thread(target=echo, args=(accepted,), daemon=True).start()