多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Python 50行代碼實現代理服務器(加強版)

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

來源:程序員人生   發布時間:2015-02-02 08:13:17 閱讀次數:4572次

網上很多python 50行代碼實現代理服務器,但是易出現異常,致使退出。


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


這里就是使用Python簡單的實現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))


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一本大道香蕉高清久久 | 日韩激情中文字幕一区二区 | 成人午夜在线观看 | 俄罗斯videosex性欧美黑吊 | 亚洲春色第一页 | 国产永久高清免费动作片www | 亚洲天堂免费在线视频 | 国产精品久久永久免费 | 亚洲欧美日韩在线观看看另类 | 2022国产福利在线观看 | 日韩一区二区视频在线观看 | 国产一国产一级毛片视频在线 | h视频在线免费 | 午夜一级精品免费毛片 | 性视频一区| 欧美激情一级欧美精品 | 一区二区三区 日韩 | 国农村精品国产自线拍 | 另类天堂 | 欧美最猛性xxxx | 欧美成人高清性色生活 | 免费在线视频播放 | 亚洲美女又黄又爽在线观看 | 毛片破处| 国产成人久视频免费 | 国产成人亚洲精品久久 | 成人私拍福利视频在线 | 亚洲精品天堂在线观看 | 夜夜狠狠狠狠 | 直接在线观看的三级网址 | 欧美不卡一区二区三区免 | 国产精品www| 一级免费毛片 | 精品国产高清不卡毛片 | freexx性video18印度| 亚洲经典在线观看 | 国产精品久久久免费视频 | 最新久久精品 | 小说区乱图片区 | 国产一级毛片视频在线! | 欧美专区一区 |