dabear Skrevet 6. desember 2006 Skrevet 6. desember 2006 Heisann. Har goldt på i hele kveld og knota med dette, så nå følte jeg at jeg måtte spørre her istedet. Hvordan får jeg en server tråda? Jeg har kommet fram til noe kode jeg skal dele nokså snart, men basert på om jeg kjører den som daemon eller ikke; vil den enten: ikke kjøre i egen tråd; eller så returnerer den tvert, uten at det er mulig å komme seg inn på serveren. Jeg begynte først med å overstyre threading.Thread sin run-metode, men fant deretter noe på nettet, men jeg får ikke det til å virke heller. Noen forslag? Litt forkorta eksempel: import threading import BaseHTTPServer, SocketServer, cgi class Handler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write("why oh why won't you be threaded? :(") class ThreadedServer(SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer): stop = False def __init__(self, *args, **kws): self.threads = [] BaseHTTPServer.HTTPServer.__init__(self, *args, **kws) # This method comes from ThreadingMixIn def process_request_thread(self, request, client_address): my_thread = threading.currentThread() self.threads.append(my_thread) return SocketServer.ThreadingMixIn.process_request_thread( self, request, client_address) class ServerManager(object): def __init__(self): self.host = HOST self.port = PORT self.server = ThreadedServer((self.host, self.port), Handler) def start(self): print '\n serving at port', PORT self.server_thread = threading.Thread( target=self.server.serve_forever) #self.server_thread.setDaemon(False) self.server_thread.start() ServerManager().start()
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå