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字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
使用Python装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
python多维数组切片方法
Apr 13 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
python 二维数组90度旋转的方法
Jan 28 Python
python实现弹窗祝福效果
Apr 07 Python
python 直接赋值和copy的区别详解
Aug 07 Python
python调用接口的4种方式代码实例
Nov 19 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
Python读写csv文件流程及异常解决
Oct 20 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
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP的自定义模板引擎
2017/03/24 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
innerText 使用示例
2014/01/23 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
利用JS实现数字增长
2016/07/28 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
详解小程序用户登录状态检查与更新实例
2019/05/15 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
javascript实现扫雷简易版
2020/08/18 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
python 网络编程常用代码段
2016/08/28 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python生成器推导式用法简单示例
2019/10/08 Python
python判断正负数方式
2020/06/03 Python
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
表演方阵解说词
2014/02/08 职场文书
保护动物倡议书
2014/04/15 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2015年老干部工作总结
2015/04/23 职场文书
小学教代会开幕词
2016/03/04 职场文书
车辆挂靠协议书
2016/03/23 职场文书
使用Pytorch实现two-head(多输出)模型的操作
2021/05/28 Python
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫