Page 1 of 1

Wie können Sie asynchroner BasehttprequestHandler Python Server funktionieren?

Posted: 13 May 2025, 18:27
by Anonymous
Das habe ich. Es heißt Oserror: [Errno 98] Adresse bereits verwendet: < /p>

Code: Select all

import threading
import _thread

def GET(self):

print(self.path)

path = self.path[1:]
print(f"path [{path}]")

message = "";

self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()

f = open(path)
message = f.read()
self.wfile.write(bytes(message, "utf8"))

def SERVE():
with HTTPServer(('0.0.0.0', 8000), handler) as server:
server.serve_forever()

class handler(BaseHTTPRequestHandler):

def do_GET(self):

t1 = threading.Thread(target=GET,args=(self))
t2 = threading.Thread(target=SERVE)
t1.start()
t2.start()

import socketserver
import socket

with HTTPServer(('0.0.0.0', 8000), handler) as server:

server.serve_forever()
< /code>
Ich versuche, es im Parallelcode mit Threads auszuführen, da sie einfacher zu verwenden als die Multiprozessierung. Sie sagen immer, dass sie dies tun, aber ich weiß nicht, wie ich diese Einstellung in meinem Code auf den Socket festlegen kann (oder hinter dem BasehttprequestHandler a.k.a -Server. Arbeiten.        if self.allow_reuse_address and hasattr(socket, "SO_REUSEADDR"):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
if self.allow_reuse_port and hasattr(socket, "SO_REUSEPORT"):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
self.socket.bind(self.server_address)
self.server_address = self.socket.getsockname()