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模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
谈谈python中GUI的选择
Mar 01 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python多线程同步实例教程
Aug 11 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
python二元表达式用法
Dec 04 Python
tensorflow 实现数据类型转换
Feb 17 Python
python logging.basicConfig不生效的原因及解决
Feb 20 Python
Python 存取npy格式数据实例
Jul 01 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
一个更简单的无限级分类菜单代码
2007/01/16 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP处理excel cvs表格的方法实例介绍
2013/05/13 PHP
php使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
JS检测输入字符是否包含非法字符的示例代码
2014/02/11 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码
2016/06/28 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
浅谈Vuex的状态管理(全家桶)
2017/11/04 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
Python编写登陆接口的方法
2017/07/10 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
基于Pandas读取csv文件Error的总结
2018/06/15 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
Python基于内置函数type创建新类型
2020/10/22 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
草莓网中国:StrawberryNet中国
2020/08/17 全球购物
员工生日会策划方案
2014/06/14 职场文书
个人务虚会发言材料
2014/10/20 职场文书
2015年预算员工作总结
2015/05/14 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
五一放假通知怎么写
2015/08/18 职场文书
党组织结对共建协议书
2016/03/23 职场文书
redis实现排行榜功能
2021/05/24 Redis
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python