Python模块解析之SocketServer(三)——模块思想
2024-10-13 21:46:01
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模块)都是使用了该思想。
最新文章
- LAMP布署笔记
- Pi 前2600位
- jQuery实战
- jquery.print.js 打印插件
- 【ios 7】 之后的设置系统的状态栏隐藏的方法分享
- 一块神奇的树莓派电子板竟让我学会了Linux系统
- 北京联想招聘-IOS高级 加入qq 群:220486180 或者直接在此 留言咨询
- C#中DllImport用法和路径问题
- MySQL在windows和linux下的表名大小写问题
- [转载]Java synchronized详解
- 开放计算平台——数据仓库(Hive)权限控制
- 武汉新芯:已建成IP体系,欲以存储器为特色
- css 背景色渐变
- react native ios打包到真机
- 【开源社交系统研发日记】利用 Docker 包 Laradock 服务器部署 Laravel &; ThinkSNS+ 等程序实战(多项目)
- 20150605面试汇总--js与java的差别
- Dubbo工作原理,集群容错,负载均衡
- 反向代理WebSocket连接自动断掉的问题
- Java之旅_面向对象_抽象类
- render函数
热门文章
- Eclipse(PHP、JAVA)的快捷键大全
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码
- Seeking USB Serial Com Port in Windows Automatically : via PID VID
- SDUT2608(Alice and Bob)
- Linux下Postfix的配置和使用
- MapReduce明星搜索指数统计,找出人气王
- java编程思想-异常
- 设置ORACLE环境变量
- ViewPager和SwipeRefreshLayout之间嵌套使用时发生";事件";冲突
- Use StringBuilder instead of String as possible as you can.