python简单的http服务器

1、Server.py

# -*- coding:UTF-8 -*-

import os
import BaseHTTPServer
import time
import threading
import urlparse

class ServerHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    
    '''
            简单的Http服务器,处理get请求
    '''

#    def __init__(self,request, client_address, server):
#        BaseHTTPServer.BaseHTTPRequestHandler.__init__(self,request, client_address, server);
#        self.server = server;
    
    #处理用户的GET请求
    def do_GET(self):
        try:
            str = urlparse.urlparse(self.path)
            #处理请求的参数
#            args = dict(urlparse.parse_qsl(str.query));
            fn = os.curdir+os.sep+self.path
            self.send_response(200)
            self.send_header("Content-type", "text/html; charset=utf-8")
            self.send_header("Content-Length", os.path.getsize(fn))
            self.end_headers()
#            with open(fn , "rb" ) as f:
#                self.wfile.write(f.read());
#                self.wfile.flush();
#                return;
            
            #写回客户端
            clientf = open(fn);
            self.wfile.write(clientf.read());
            clientf.close();
        except:
            print '出现异常'
            self.send_error(404, 'File Not Found:%s' % fn)
    

class Server:
    def startServer(self):
        server_address = ('', 8000)
        httpd = BaseHTTPServer.HTTPServer(server_address, ServerHandler)
        server_thread = threading.Thread(target=httpd.serve_forever)
        server_thread.setDaemon(True)
        server_thread.start()
        
        
if __name__ == '__main__':
    
    server = Server()
    server.startServer()
    starttime = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))  
    print '%s 服务器已启动' % starttime
    time.sleep(50000)


2、目录结构
python简单的http服务器
   

你可能感兴趣的:(thread,html,python,OS,F#)