go!go!go!
全部博文(188)
分类: Python/Ruby
2013-02-24 15:37:49
支持多线程的webserver
#!/usr/bin/python
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer,BaseHTTPRequestHandler
class myHandler(BaseHTTPRequestHandler):
#Handler for the GET requests
def do_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")
class ThreadingHttpServer(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
[root@localhost ~]# curl -v * 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