mirror of
https://github.com/go-gost/gost.git
synced 2026-10-08 12:05:46 +00:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
import socket
|
|
import threading
|
|
|
|
_counter = 0
|
|
_http_server = None
|
|
|
|
|
|
class Handler(BaseHTTPRequestHandler):
|
|
def do_GET(self):
|
|
global _counter
|
|
_counter += 1
|
|
body = b"cache-test-%d" % _counter
|
|
self.send_response(200)
|
|
self.send_header("Content-Length", str(len(body)))
|
|
self.send_header("Connection", "close")
|
|
self.end_headers()
|
|
self.wfile.write(body)
|
|
threading.Thread(target=stop_server, daemon=True).start()
|
|
|
|
def log_message(self, format, *args):
|
|
return
|
|
|
|
|
|
def stop_server():
|
|
global _http_server
|
|
if _http_server:
|
|
_http_server.shutdown()
|
|
_http_server.server_close()
|
|
|
|
|
|
def start_raw_acceptor():
|
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
|
sock.bind(("0.0.0.0", 5676))
|
|
sock.listen(5)
|
|
while True:
|
|
conn, addr = sock.accept()
|
|
conn.close()
|
|
|
|
|
|
_http_server = HTTPServer(("0.0.0.0", 5676), Handler)
|
|
_http_server.serve_forever()
|
|
_http_server.server_close()
|
|
|
|
start_raw_acceptor()
|