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实现删除时保留特定文件夹和文件的示例
Apr 27 Python
对python cv2批量灰度图片并保存的实例讲解
Nov 09 Python
python3实现指定目录下文件sha256及文件大小统计
Feb 25 Python
Python简单基础小程序的实例代码
Apr 28 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
Django的Modelforms用法简介
Jul 27 Python
Django单元测试工具test client使用详解
Aug 02 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
python实现每天自动签到领积分的示例代码
Aug 18 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 mysql分页实例代码
2008/04/10 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
php实现图形显示Ip地址的代码及注释
2014/01/20 PHP
swoole_process实现进程池的方法示例
2018/10/29 PHP
[JS]点出统计器
2020/10/11 Javascript
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
jquery乱码与contentType属性设置问题解决方案
2013/01/07 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
vue2.0结合Element-ui实战案例
2019/03/06 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
python mysqldb连接数据库
2009/03/16 Python
python实现2014火车票查询代码分享
2014/01/10 Python
Python3实现并发检验代理池地址的方法
2016/09/18 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
PyQt5每天必学之工具提示功能
2018/04/19 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
python实现拼图小游戏
2020/02/22 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
马克华菲官方商城:Mark Fairwhale
2016/09/04 全球购物
社会工作专业求职信
2014/07/15 职场文书
2016廉洁教育心得体会
2016/01/20 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL