日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網(wǎng) > Python 50行代碼實現(xiàn)代理服務器(加強版)

Python 50行代碼實現(xiàn)代理服務器(加強版)

來源:程序員人生   發(fā)布時間:2015-02-02 08:13:17 閱讀次數(shù):4575次

網(wǎng)上很多python 50行代碼實現(xiàn)代理服務器,但是易出現(xiàn)異常,致使退出。


這里的代理服務器,是指2級代理服務器。比如:A可以訪問B,B可以訪問C,A不能直接訪問C。這時候,如果在B開1個2級代理,便可實現(xiàn)A訪問C。現(xiàn)有的工具有CCProxy。


這里就是使用Python簡單的實現(xiàn)1個2級代理。


#coding=utf⑻  import socket  import select  import sys  import threading import time import logging import os logsDir = "logs" if not os.path.isdir(logsDir):     os.mkdir(logsDir)      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='logs/logs.log',                 filemode='a')   #C的IP和端口  to_addr = ('127.0.0.1', 8087) maxConnetions = 32 class Proxy:      def __init__(self, addr):          self.proxy = socket.socket(socket.AF_INET, socket.SOCK_STREAM)          self.proxy.bind(addr)          self.proxy.listen(maxConnetions)          self.inputs = {self.proxy:None}          self.route = {}          def serve_forever(self):          logging.info('proxy listen...')         while 1:              readable, _, _ = select.select(list(self.inputs.keys()), [], [])              for self.sock in readable:                  if self.sock == self.proxy:                      self.on_join()                  else:                     try:                         data = self.sock.recv(8192)                     except Exception, e:                         logging.error(str(e))                         self.on_quit()                         continue                                          if not data:                          self.on_quit()                      else:                         try:                             self.route[self.sock].send(data)                         except Exception, e:                             logging.error(str(e))                             self.on_quit()                             continue         def on_join(self):          client, addr = self.proxy.accept()          logging.info("proxy client " + str(addr) + 'connect')         forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM)          try:             forward.connect(to_addr)         except Exception, e:             logging.error(str(e))             client.close()             return         self.inputs [client] = None         self.inputs [forward] = None         self.route[client] = forward          self.route[forward] = client           #刪除連接     def on_quit(self):         ls = [self.sock]         if self.sock in self.route:             ls.append(self.route[self.sock])         for s in ls:             if s in self.inputs:                 del self.inputs[s]             if s in self.route:                 del self.route[s]              s.close()               if __name__ == "__main__":     try:          Proxy(('', 8192)).serve_forever()     except KeyboardInterrupt, e:          logging.error("KeyboardInterrupt" + str(e))


生活不易,碼農辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩精品一区在线观看 | 亚洲成人av一区二区三区 | a爱视频| 久久久久久久久久久国产 | 国内外成人在线视频 | 色网站在线观看 | 久热99 | 久久久久成人网 | 久久综合成人网 | 九九九九九伊人 | 成人在线www | 久久国产综合 | 日韩激情一区 | 日韩欧美大片在线观看 | 91精品久久久久久久久久入口 | 欧洲av一区| 亚洲女人天堂成人av在线 | 欧美国产日本在线观看 | 伊人成人在线 | 国产精品视频网 | 日本精品一区二区三区四区的功能 | 国产日产亚洲精品 | 99久久精品免费看国产免费软件 | 久久精品免费观看 | 亚洲一区在线免费 | 国产精品亚洲第一区在线暖暖韩国 | 黄色av影院| 日韩综合精品 | 精品视频久久 | 国产精品第8页 | av大帝在线 | 日本黄a三级三级三级 | 九九久久精品 | 久久美女视频 | 欧美精品一二区 | 欧美在线一区二区三区 | 日韩午夜激情 | 一区二区三区高清在线观看 | 精久久 | 日韩欧美自拍偷拍 | 四虎www |