-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhttp_server_threads.py
More file actions
28 lines (20 loc) · 855 Bytes
/
Copy pathhttp_server_threads.py
File metadata and controls
28 lines (20 loc) · 855 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from http.server import HTTPServer, BaseHTTPRequestHandler, ThreadingHTTPServer
from socketserver import ThreadingMixIn, ForkingMixIn
import threading
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-Type", "text/plain; charset=utf-8")
self.end_headers()
message = threading.currentThread().getName()
self.wfile.write(message.encode("utf-8"))
self.wfile.write(b"\n")
class ThreadedHTTPServer(ThreadingMixIn, HTTPServer):
daemon_threads = True
class ForkingHTTPServer(ForkingMixIn, HTTPServer):
pass
if __name__ == "__main__":
# server = ThreadedHTTPServer(('localhost', 8080), Handler)
server = ForkingHTTPServer(("localhost", 8080), Handler)
print("Starting server, use <Ctrl+C> to stop")
server.serve_forever()