python

超轻量级php框架startmvc

Python基于ThreadingTCPServer创建多线程代理的方法示例

更新时间:2020-05-18 02:18:01 作者:startmvc
本文实例讲述了Python基于ThreadingTCPServer创建多线程代理的方法。分享给大家供大家参考,具

本文实例讲述了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 ThreadingTCPServer 多线程 代理