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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
python读取csv文件示例(python操作csv)
Mar 11 Python
浅析Python中元祖、列表和字典的区别
Aug 17 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]
Feb 13 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
小结Python的反射机制
Sep 28 Python
如何使用Pytorch搭建模型
Oct 26 Python
Python爬虫之Selenium实现键盘事件
Dec 04 Python
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
Mar 29 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
php5.2.0内存管理改进
2007/01/22 PHP
自己开发Dojo的建议框架
2008/09/24 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
IE下JS读取xml文件示例代码
2013/08/05 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
nodejs使用async模块同步执行的方法
2019/03/02 NodeJs
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
Python3.6简单反射操作示例
2018/06/14 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
python3+pyqt5+itchat微信定时发送消息的方法
2019/02/20 Python
django解决订单并发问题【推荐】
2019/07/31 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
如何理解Python中的变量
2020/06/01 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
五四青年节优秀演讲稿范文
2014/05/28 职场文书
自荐信模板大全
2015/03/27 职场文书
民间借贷被告代理词
2015/05/23 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Redis 异步机制
2022/05/15 Redis