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使用socket向客户端发送数据的方法
Apr 29 Python
python reduce 函数使用详解
Dec 05 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
使用GitHub和Python实现持续部署的方法
May 09 Python
Python中的单下划线和双下划线使用场景详解
Sep 09 Python
python实现代码统计程序
Sep 19 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
python实现字符串和数字拼接
Mar 02 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
May 03 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
Nov 02 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写的serv-u的web申请账号的程序
2006/10/09 PHP
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
PHP 手机归属地查询 api
2010/02/08 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
PHP curl使用实例
2015/07/02 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
php遍历替换目录下文件指定内容的方法
2016/11/10 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
javascript鼠标滑过显示二级菜单特效
2020/11/18 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
nuxt.js添加环境变量,区分项目打包环境操作
2020/11/06 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
利用Python绘制MySQL数据图实现数据可视化
2015/03/30 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
python基本语法练习实例
2017/09/19 Python
浅析Python数据处理
2018/05/02 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Django Rest framework频率原理与限制
2019/07/26 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
小学教师评语大全
2014/04/23 职场文书
人事任命书范文
2014/06/04 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
python中requests库+xpath+lxml简单使用
2021/04/29 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB