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 相关文章推荐
ubuntu安装mysql pycharm sublime
Feb 20 Python
使用pandas对矢量化数据进行替换处理的方法
Apr 11 Python
Django中使用Celery的方法示例
Nov 29 Python
python多线程下信号处理程序示例
May 31 Python
Django models.py应用实现过程详解
Jul 29 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
Python制作简易版小工具之计算天数的实现思路
Feb 13 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python如何实现线程间通信
Jul 30 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
Python常遇到的错误和异常
Nov 02 Python
Python列表的索引与切片
Apr 07 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将会员数据导入到ucenter的代码
2010/07/18 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
Yii rules常用规则示例
2016/03/15 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP PDOStatement::getAttribute讲解
2019/02/01 PHP
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Python中的模块导入和读取键盘输入的方法
2015/10/16 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
入学申请自荐信范文
2014/02/26 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014个人年度工作总结
2014/12/15 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
go语言map与string的相互转换的实现
2021/04/07 Golang