转:http://blog.chinaunix.net/uid-23145525-id-3497931.html
支持多线程的webserver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/python
fromSocketServerimportThreadingMixIn
fromBaseHTTPServerimportHTTPServer,BaseHTTPRequestHandler
classmyHandler(BaseHTTPRequestHandler):
#Handler for the GET requests
defdo_GET(self):
self.send_response(200)
self.send_header('Content-type','text/html')
self.send_header('Uri',self.path)
self.end_headers()
self.wfile.write("hi multi threading test!\n")
classThreadingHttpServer(ThreadingMixIn, HTTPServer):
pass
PORT_NUM=8080
serverAddress=("", PORT_NUM)
server=ThreadingHttpServer(serverAddress, myHandler)
print'Started httpserver on port ', PORT_NUM
server.serve_forever()
|
测试:
curl -v http://127.0.0.1:8080/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@localhost ~]# curl -v http://127.0.0.1:8080/
* About to connect() to 127.0.0.1 port 8080
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8080
> GET / HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Host: 127.0.0.1:8080
> Accept: */*
< HTTP/1.0 200 OK
< Server: BaseHTTP/0.3 Python/2.4.3
< Date: Sun, 24 Feb 2013 07:28:46 GMT
< Content-type: text/html
< Uri: /
hi multi threading test!
* Closing connection #0
|