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

 from os import curdir, sep
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
try:
f = open(curdir + sep + self.path)
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(f.read)
f.close()
except ImportError:
self.send_error(404, 'File Not Found: %s' % self.path) def main():
try:
server = HTTPServer(('', 80), MyHandler)
print 'Welcome to the machine...........'
print 'Press ^C once or twice to quit.'
server.serve_forever()
except KeyboardInterrupt:
print '^C received, shutting down server'
server.socket.close() if __name__ == '__main__':
main()

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

最新文章

  1. LAMP布署笔记
  2. Pi 前2600位
  3. jQuery实战
  4. jquery.print.js 打印插件
  5. 【ios 7】 之后的设置系统的状态栏隐藏的方法分享
  6. 一块神奇的树莓派电子板竟让我学会了Linux系统
  7. 北京联想招聘-IOS高级 加入qq 群:220486180 或者直接在此 留言咨询
  8. C#中DllImport用法和路径问题
  9. MySQL在windows和linux下的表名大小写问题
  10. [转载]Java synchronized详解
  11. 开放计算平台——数据仓库(Hive)权限控制
  12. 武汉新芯:已建成IP体系,欲以存储器为特色
  13. css 背景色渐变
  14. react native ios打包到真机
  15. 【开源社交系统研发日记】利用 Docker 包 Laradock 服务器部署 Laravel & ThinkSNS+ 等程序实战(多项目)
  16. 20150605面试汇总--js与java的差别
  17. Dubbo工作原理,集群容错,负载均衡
  18. 反向代理WebSocket连接自动断掉的问题
  19. Java之旅_面向对象_抽象类
  20. render函数

热门文章

  1. Eclipse(PHP、JAVA)的快捷键大全
  2. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码
  3. Seeking USB Serial Com Port in Windows Automatically : via PID VID
  4. SDUT2608(Alice and Bob)
  5. Linux下Postfix的配置和使用
  6. MapReduce明星搜索指数统计,找出人气王
  7. java编程思想-异常
  8. 设置ORACLE环境变量
  9. ViewPager和SwipeRefreshLayout之间嵌套使用时发生"事件"冲突
  10. Use StringBuilder instead of String as possible as you can.