zoukankan      html  css  js  c++  java
  • Python模块解析之SocketServer(三)——模块思想

               SocketServer 体系 由两个部分构成 BaseServerBaseRequestHandler。思想很简单 BaseServer接受请求,将请求交给BaseRequestHandler处理。所以如果我们想思想自己特定的Socket服务器,只用创建自己的 MyServerMyRequestHandler 分别继承自适合的BaseServer 和 BaseRequestHandler。下面我们实现一个简单的Web服务器

     1 from os import curdir, sep
     2 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
     3 
     4 class MyHandler(BaseHTTPRequestHandler):
     5     def do_GET(self):
     6         try:
     7             f = open(curdir + sep + self.path)
     8             self.send_response(200)
     9             self.send_header('Content-type', 'text/html')
    10             self.end_headers()
    11             self.wfile.write(f.read)
    12             f.close()
    13         except ImportError:
    14             self.send_error(404, 'File Not Found: %s' % self.path)
    15 
    16 def main():
    17     try:
    18         server = HTTPServer(('', 80), MyHandler)
    19         print 'Welcome to the machine...........'
    20         print 'Press ^C once or twice to quit.'
    21         server.serve_forever()
    22     except KeyboardInterrupt:
    23         print '^C received, shutting down server'
    24         server.socket.close()
    25 
    26 if __name__ == '__main__':
    27     main()

      很简单吧……SocketServer体系的思想 是把 接受请求 和 处理请求 分别交给两个Server 和 Handler 去处理。Python自带的简易的 CGIHTTPServer, 和 WSGIServer(wsgiref模块)都是使用了该思想。

  • 相关阅读:
    网址收藏
    Linux创建swap文件
    vim命令大全
    char * 和字符数组
    JSR 203终于要出来啦
    对象关系技术的探讨
    最近编码更流畅了
    孤独终止的地方,就是广场开始的地方......
    不要奢望.NET能够跨平台
    实现了HTTP多线程下载
  • 原文地址:https://www.cnblogs.com/ArtsCrafts/p/socketserver3.html
Copyright © 2011-2022 走看看