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模块)都是使用了该思想。

  • 相关阅读:
    POJ 1703 Find them, Catch them
    POJ 2236 Wireless Network
    POJ 2010 Moo University
    POJ 2184 Cow Exhibition
    POJ 3280 Cheapest Palindrome
    POJ 3009 Curling 2.0
    POJ 3669 Meteor Shower
    POJ 2718 Smallest Difference
    POJ 3187 Backward Digit Sums
    POJ 3050 Hopscotch
  • 原文地址:https://www.cnblogs.com/ArtsCrafts/p/socketserver3.html
Copyright © 2011-2022 走看看