同时处理多个客户端请求,并且为不同的CLIENT开不同的线程处理。

这个东东,就显然实用性稍强了一些。(FORK和THREAD方式均可,但各有应用)

#!/usr/bin/env pythonfrom BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
from SocketServer import ThreadingMixIn
import time,threadingstarttime = time.time()class RequestHandler(BaseHTTPRequestHandler):"""Definintion of the request hadnler."""def _writeheaders(self, doc):"""Write the HTTP headers for the document. If there is nodocumnet, send a 404 error code;"""if doc is None:self.send_response(404)else:self.send_response(200)#Always server up HTML for now.self.send_header('Content-type', 'text/html')self.end_headers()def _getdoc(self, filename):"""Handle a request for a document """global starttimeif filename == '/':return """<HTML><HEAD><TITLE>sample python page</TITLE></HEAD><BODY> THIS IS A SAMPLE PAGE.</BODY></HTML>"""elif filename == '/stats.html':return """<HTML><HEAD><TITLE>Status</TITLE></HEAD><BODY> This server has veen running for %d seconds.</BODY></HTML>""" % int(time.time() - starttime)else:return Nonedef do_HEAD(self):"""Handle a request for headers only"""doc = self._getdoc(self.path)self._writeheaders(doc)def do_GET(self):"""Handle a request for headers and body"""print "Handling with thread", threading.currentThread().getName()doc = self._getdoc(self.path)self._writeheaders(doc)if doc is None:self.wfile.write("""<HTML><HEAD><TITLE>Not found</TITLE></HEAD><BODY> The requested document '%s' was not found.</BODY></HTML>""" % self.path)else:self.wfile.write(doc)class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):passserveraddr = ('',8765)
srvr = ThreadingHTTPServer(serveraddr, RequestHandler)
srvr.serve_forever()

深入了解一下PYTHON中关于SOCKETSERVER的模块-C相关推荐

  1. 深入了解一下PYTHON中关于SOCKETSERVER的模块-B

    请求多个文件的原型. 这个是最草的情况,就是硬编码到内存中的字符串, 真实的应用还是会转到其它端口处理,或是读到硬盘上的文件吧. #!/usr/bin/env pythonfrom BaseHTTPS ...

  2. 深入了解一下PYTHON中关于SOCKETSERVER的模块-A

    有了这块知识,应该对各类WEB框架有更好的理解吧..FLASK,DJANGO,WEBPY.... #!/usr/bin/env pythonfrom BaseHTTPServer import HTT ...

  3. Python中的类、模块和包究竟是什么?

    Python培训教程:Python中的类.模块和包究竟是什么?在Python和其他编程语言中,都有类似或相同的概念,如对象.类.模块.包,名称都是一样的,只不过会有细微的一些区别,正是因为有这些存在, ...

  4. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  5. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  6. 对于python来说、一个模块就是一个文件-PYTHON中的包和模块

    为了更加友好的对python代码进行组织管理,python中出现了包和模块的概念 类似生活中整理我们的物品一样,将代码按照不同的功能进行整理整合,可以很大程度的提升代码可读性和代码质量,方便在项目中进 ...

  7. Python中爬虫框架或模块的区别!

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  8. python怎么导入模块-Python中如何引入第三方模块

    Python中怎么使用第三方模块? 在Python可以在代码中导入模块,然后就可以使用第三方模块了. import 语句 想使用Python源文件,只需在另一个源文件里执行import语句,语法如下: ...

  9. python中根据字符串导入模块module

    python中根据字符串导入模块module 需要导入importlib,使用其中的import_module方法 import importlibmodname = 'datetime'dateti ...

最新文章

  1. 中provide的用法_Vue中那些你不知道的作用域
  2. python设置window系统ip
  3. Python入门级3-字典 if while for
  4. asp.net checkboxlist绑定数据读取出来
  5. windows下批处理常用句法
  6. python就业方向-目前Python这么火,Python有哪些就业方向?
  7. NIO server client
  8. 直线扫描转换算法DDA算法(数值微分算法)
  9. 基于隐私保护的安全多方计算区块链融合技术的智能合约
  10. FAT文件系统引导扇区学习总结
  11. 易语言开发的cnzz站长统计留痕软件,成品原理源码分享
  12. 用Asp.net 就能轻松实现铁道部的订票系统
  13. asp.net中runat=server的含义
  14. Aqara? 华为?智汀?要真的实现万物互联了吗?
  15. python渲染光线_在python中为图像添加光照效果
  16. java校园招聘华为_2015届华为校园招聘机试题 java实现
  17. Unix/Linux文件系统的目录结构
  18. 【渝粤题库】陕西师范大学292331 证券投资学Ⅰ作业(高起专)
  19. 论坛报名 | 智能信息检索与挖掘
  20. vue项目引入高德地图(定位、搜索、经纬度解析地址)

热门文章

  1. 简要解释什么是Conv1d,Conv2d,Conv3d
  2. 222页斯坦福人工智能报告出炉:全球AI投资猛增680亿,北美博士学术机构就业率下降
  3. 很遗憾,自然语言理解是AI尚未攻克的领域
  4. “嫦娥上月球挖土”!打破尘封44年的人类历史,中国航天实现“五个首次”...
  5. 2020诺奖预测出炉!一位华人学者入选
  6. 剑桥大学发布2019年度AI发展报告,预测未来12个月AI产业6件大事
  7. 汽车与智能家居互联时代 语音控制很关键
  8. 张首晟生前重磅演讲:要用第一性原理的思维方式来理解今天的世界
  9. Nature:科学家成功绘制出大脑神经细胞“地图”
  10. 发推吐槽职场性别歧视后,苹果女高管被无限期行政休假