栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基于ThreadingTCPServer创建多线程代理的方法示例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基于ThreadingTCPServer创建多线程代理的方法示例

本文实例讲述了Python基于ThreadingTCPServer创建多线程代理的方法。分享给大家供大家参考,具体如下:

#coding=utf8
from baseHTTPServer import baseHTTPRequestHandler
from SocketServer import ThreadingTCPServer
import gzip
from StringIO import StringIO
import logging
logging.basicConfig(level=logging.DEBUG,
 format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
 datefmt='%a, %d %b %Y %H:%M:%S',
 filename='proxy.log',
 filemode='w')
class proxyHandler(baseHTTPRequestHandler):
  def do_POST(self):
    while True:
      try:
 path = self.path
 if path.split("/")[-1] =="statistics":
   #获取post提交的数据
   datas =gzip.GzipFile(fileobj=StringIO(self.rfile.read())).read()
   self.wfile.write(datas)
   logging.debug(datas)
   print datas
      except Exception,e:
 logging.error(e)
      finally:
 self.finish()
  def do_ConNECT(self):
    pass
  def do_GET(self):
    pass
def test():
  host='127.0.0.1'
  port=8888
  try:
    server = ThreadingTCPServer((host, port), proxyHandler)
    print 'Welcome to the Server HTTP On %s Port %d...' %(host,port)
    server.serve_forever()
  except KeyboardInterrupt,e:
    logging.error(e)
    #print '^C received, shutting down server'
    server.socket.close()
if __name__ == '__main__':
  test()

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/31341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号