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使用win32com在百度空间插入html元素示例
Feb 20 Python
Go语言基于Socket编写服务器端与客户端通信的实例
Feb 19 Python
纯python实现机器学习之kNN算法示例
Mar 01 Python
使用python将大量数据导出到Excel中的小技巧分享
Jun 14 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Django保护敏感信息的方法示例
May 09 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
Python celery原理及运行流程解析
Jun 13 Python
学生如何注册Pycharm专业版以及pycharm的安装
Sep 24 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 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字符串 ==比较运算符的副作用
2009/10/21 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
php取整函数ceil,floo,round的用法及介绍
2013/08/31 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
[01:00:14]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第二场 2月28日
2021/03/11 DOTA
在Python中操作字典之update()方法的使用
2015/05/22 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
2016/05/25 Python
python pandas修改列属性的方法详解
2018/06/09 Python
启动Atom并运行python文件的步骤
2018/11/09 Python
Python类的继承用法示例
2019/01/31 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
2019/05/08 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
Python析构函数__del__定义原理解析
2020/11/20 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
XML文档面试题
2015/08/05 面试题
初中化学教学反思
2014/01/23 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
房产转让协议书
2014/04/11 职场文书
商家认证委托书格式
2014/10/16 职场文书
服务员态度差检讨书
2014/10/28 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
手把手教你导入Go语言第三方库
2021/08/04 Golang
gtx1650怎么样 gtx1650显卡相当于什么级别
2022/04/08 数码科技