六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 46|回复: 0

python简单的http服务器

[复制链接]

升级  54.33%

111

主题

111

主题

111

主题

举人

Rank: 3Rank: 3

积分
363
 楼主| 发表于 2013-1-28 18:58:32 | 显示全部楼层 |阅读模式
1、Server.py

# -*- coding:UTF-8 -*-import osimport BaseHTTPServerimport timeimport threadingimport urlparseclass 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、目录结构
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表