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


Posted in Python onJanuary 11, 2018

本文实例讲述了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编程实现线性回归和批量梯度下降法代码实例
Jan 04 Python
解决Django生产环境无法加载静态文件问题的解决
Apr 23 Python
python实现五子棋游戏
Jun 18 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
Pytorch 神经网络—自定义数据集上实现教程
Jan 07 Python
python字符串下标与切片及使用方法
Feb 13 Python
django的autoreload机制实现
Jun 03 Python
virtualenv介绍及简明教程
Jun 23 Python
python上selenium的弹框操作实现
Jul 13 Python
python调用私有属性的方法总结
Jul 24 Python
通过实例简单了解python yield使用方法
Aug 06 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
python实现员工管理系统
Jan 11 #Python
Python使用base64模块进行二进制数据编码详解
Jan 11 #Python
Python实现备份MySQL数据库的方法示例
Jan 11 #Python
教你用Python写安卓游戏外挂
Jan 11 #Python
python实现学生管理系统
Jan 11 #Python
linecache模块加载和缓存文件内容详解
Jan 11 #Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 #Python
You might like
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
setTimeout与setInterval在不同浏览器下的差异
2010/01/24 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
jQuery UI Autocomplete 1.8.16 中文输入修正代码
2012/04/16 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
深入理解Promise.all
2018/08/08 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
2020/04/30 Javascript
详解Python迭代和迭代器
2016/03/28 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
使用apidocJs快速生成在线文档的实例讲解
2018/02/07 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
python梯度下降算法的实现
2020/02/24 Python
结婚邀请函范文
2014/01/14 职场文书
岗位职责怎么写
2014/03/14 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
党的群众路线教育实践活动心得体会(医院)
2014/11/03 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
销售合作意向书范本
2015/05/08 职场文书
傲慢与偏见电影观后感
2015/06/10 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js