本文共 1458 字,大约阅读时间需要 4 分钟。
## 最简http服务器模型
import os, sys, platformimport BaseHTTPServerfrom SocketServer import ThreadingMixInimport threadingimport urllib, urllib2import shutilimport reimport timetry: from cStringIO import StringIOexcept ImportError: from StringIO import StringIO######################################################################################################### Overload and Impl the HttpRequest Handler.########################################################################################################class SimpleHTTPRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): #[GET] def do_GET(self): f = StringIO() f.write(self.path) length = f.tell() f.seek(0) self.response(length) if f: shutil.copyfileobj(f, self.wfile) f.close() #[Response] def response(self,length): self.send_response(200) self.send_header("Content-type", "text/html") self.send_header("Content-Length", str(length)) self.end_headers()######################################################################################################### Main Function########################################################################################################class ThreadingServer(ThreadingMixIn, BaseHTTPServer.HTTPServer): passif __name__ == '__main__': serveraddr = ('',int(sys.argv[1])) print "Listening Port(%s)" % (int(sys.argv[1])) srvr = ThreadingServer(serveraddr, SimpleHTTPRequestHandler) srvr.serve_forever()
转载地址:http://xjvbi.baihongyu.com/