亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? http_match.py

?? 一個java寫的proxy的例子
?? PY
字號:
from proxy4_base import *from connection import *class ServerPool:    def __init__(self):        self.map = {} # {(ipaddr, port) -> {server -> ('available'|'busy')}}        self.http_versions = {} # {(ipaddr, port) -> http_version}        self.callbacks = {} # {(ipaddr, port) -> [functions to call]}        make_timer(60, self.expire_servers)            # Usage:    #   reserve_server to receive a server or None    #   unreserve_server to put a server back on the available set    #    #   register_server to add a server (busy)    #   unregister_server to remove a server (busy or not)    #    #   register_callback to express an interest in a server        def count_servers(self, addr):        "How many server objects connect to this address?"        return len(self.map.get(addr, {}))        def reserve_server(self, addr):        for server,status in self.map.get(addr, {}).items():            if status[0] == 'available':                # Let's reuse this one                self.map[addr][server] = ('busy', )                print color(6, 'reserve_server'), addr, server                return server        return None    def unreserve_server(self, addr, server):        #print color(6, 'unreserve_server'), addr, server        assert self.map.has_key(addr), '%s missing %s' % (self.map, addr)        assert self.map[addr].has_key(server), '%s missing %s' % (self.map[addr], server)        assert self.map[addr][server][0] == 'busy'        self.map[addr][server] = ('available', time.time())        self.invoke_callbacks(addr)            def register_server(self, addr, server):        "Register the server as being used"        #print color(6, 'register_server'), addr, server        if not self.map.has_key(addr):            self.map[addr] = {}        self.map[addr][server] = ('busy',)            def unregister_server(self, addr, server):        "Unregister the server"        #print color(6, 'unregister_server'), addr, server        assert self.map.has_key(addr), '%s missing %s' % (self.map, addr)        assert self.map[addr].has_key(server), '%s missing %s' % (self.map[addr], server)        del self.map[addr][server]        if not self.map[addr]: del self.map[addr]        self.invoke_callbacks(addr)    def register_callback(self, addr, callback):        # Callbacks are called whenever a server may be available        # for (addr).  It's the callback's responsibility to re-register        # if someone else has stolen the server already.        if not self.callbacks.has_key(addr):            self.callbacks[addr] = []        self.callbacks[addr].append(callback)    def connection_limit(self, addr):        if self.http_versions.get(addr, 1.1) <= 1.0:            # For older versions of HTTP, we open lots of connections            return 6        else:            return 2            def set_http_version(self, addr, http_version):        self.http_versions[addr] = http_version        self.invoke_callbacks(addr)            def expire_servers(self):        expire_time = time.time() - 300 # Unused for five minutes        to_expire = []        for addr,set in self.map.items():            for server,status in set.items():                if status[0] == 'available' and status[1] < expire_time:                    # It's old .. let's get rid of it                    to_expire.append(server)        for server in to_expire:            server.close()        make_timer(60, self.expire_servers)            def invoke_callbacks(self, addr):        # Notify whoever wants to know about a server becoming available        if self.callbacks.has_key(addr):            callbacks = self.callbacks[addr]            del self.callbacks[addr]             for callback in callbacks:                callback()        serverpool = ServerPool()            class ClientServerMatchmaker:    # States:    #    # dns:      Client has sent all of the browser information    #           We have asked for a DNS lookup    #           We are waiting for an IP address    #       =>  Either we get an IP address, we redirect, or we fail    #    # server:   We have an IP address    #           We are looking for a suitable server    #       =>  Either we find a server from ServerPool and use it    #           (go into 'response'), or we create a new server    #           (go into 'connect'), or we wait a bit (stay in 'server')    #    # connect:  We have a brand new server object    #           We are waiting for it to connect    #       =>  Either it connects and we send the request (go into    #           'response'), or it fails and we notify the client    #    # response: We have sent a request to the server    #           We are waiting for it to respond    #       =>  Either it responds and we have a client/server match    #           (go into 'done'), it doesn't and we retry (go into    #           'server'), or it doesn't and we give up (go into 'done')    #    # done:     We are done matching up the client and server        def __init__(self, client, request, headers, content):        words = split(request)        hostname, document = stripsite(join(words[1:-1], ' '))        port = 80        m = re.match(r'^(.*):(\d+)$', hostname)        if m:            hostname = m.group(1)            port = int(m.group(2))                    self.client = client        self.request = request        self.hostname = hostname        self.port = port        self.document = document        self.headers = headers        self.content = content        # Temporary HACK        if hostname == '_proxy' and document == '/xul':            local_server.ServerHandleDirectly(                self.client,                'HTTP/1.0 200 OK\r\n',                'Content-type: text/xul\r\n'                '\r\n',                open('/home/amitp/xul/google.xul', 'r').read())            return                if hostname == '_proxy' and document == '/sidegoogle':            local_server.ServerHandleDirectly(                self.client,                'HTTP/1.0 200 OK\r\n',                'Content-type: text/html\r\n'                '\r\n',                '<html><body><script>sidebar.addPanel("Google", "http://_proxy/xul", "");</script></body></html>')            return        self.state = 'dns'        dns_lookups.background_lookup(self.hostname, self.handle_dns)    def handle_dns(self, hostname, answer):        assert self.state == 'dns'        if not self.client.connected:            # The browser has already closed this connection, so abort            return        if answer.isFound():            self.ipaddr = answer.data[0]            self.state = 'server'            self.find_server()        elif answer.isRedirect():            # Let's use a different hostname            new_url = answer.data            if self.port != 80: new_url = new_url + ':%s' % self.port            new_url = new_url + self.document            self.state = 'done'            local_server.ServerHandleDirectly(                self.client,                'HTTP/1.0 301 Use different host\r\n',                'Content-type: text/html\r\n'                'Location: http://%s\r\n'                '\r\n' % new_url,                'Host %s is an abbreviation for %s\r\n'                % (hostname, answer.data))        else:            # Couldn't look up the host, so close this connection            self.state = 'done'            local_server.ServerHandleDirectly(                self.client,                'HTTP/1.0 504 Host not found\r\n',                'Content-type: text/html\r\n'                '\r\n',                'Host %s not found .. %s\r\n' % (hostname, answer.data))    def find_server(self):        assert self.state == 'server'        if not self.client.connected: return        addr = (self.ipaddr, self.port)        server = serverpool.reserve_server(addr)        if server:            # Let's reuse it            message(6, 'resurrecting', None, None, server)            self.state = 'connect'            self.server_connected(server)        elif serverpool.count_servers(addr)>=serverpool.connection_limit(addr):            # There are too many connections right now, so register us            # as an interested party for getting a connection later            serverpool.register_callback(addr, self.find_server)        else:            # Let's make a new one            self.state = 'connect'            server = http_server.HttpServer(self.ipaddr, self.port, self)            serverpool.register_server(addr, server)            def server_connected(self, server):        if not self.client.connected:            # The client has aborted, so let's return this server            # connection to the pool            server.reuse()            return        self.server = server        self.state = 'response'        # At this point, we tell the server that we are the client.        # Once we get a response, we transfer to the real client.        self.server.client_send_request(split(self.request)[0],                                        self.hostname,                                         self.document,                                        self.headers,                                        self.content,                                        self)            def server_abort(self):        # The server had an error, so we need to tell the client        # that we couldn't connect        if self.client.connected:            self.client.server_no_response()            def server_close(self):        message(6, 'resurrection failed', None,                self.server.sequence_number, self.server)        # Look for a server again        if self.server.sequence_number > 0:            # It has already handled a request, so the server is allowed            # to kill the connection.  Let's find another server object.            self.state = 'server'            self.find_server()        else:            # The server didn't handle the original request, so we just            # tell the client, sorry.            if self.client.connected:                self.client.server_no_response()    def server_response(self, response, headers):        # Okay, transfer control over to the real client        if self.client.connected:            self.server.client = self.client            self.client.server_response(self.server, response, headers)        else:            self.server.client_abort()            import http_server, local_serverimport dns_lookups

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕的久久| 日韩一区在线播放| 成人不卡免费av| 亚洲国产日韩一区二区| 精品粉嫩aⅴ一区二区三区四区| www.成人在线| 裸体在线国模精品偷拍| 亚洲丝袜美腿综合| 精品国产乱码久久久久久影片| 91美女视频网站| 极品销魂美女一区二区三区| 亚洲一卡二卡三卡四卡五卡| 国产欧美日韩不卡免费| 91精品福利在线一区二区三区| 99精品国产一区二区三区不卡| 久久精品国产成人一区二区三区 | 国产欧美中文在线| 欧美精品第1页| 色哟哟亚洲精品| 成人中文字幕在线| 精品一区二区三区免费视频| 亚洲二区在线观看| 亚洲欧美日韩电影| 国产女人18毛片水真多成人如厕| 欧美精品自拍偷拍动漫精品| 99久久99久久综合| 国产激情偷乱视频一区二区三区| 男男视频亚洲欧美| 亚洲 欧美综合在线网络| 亚洲日穴在线视频| 国产精品久久久久影院亚瑟| 久久婷婷成人综合色| 日韩天堂在线观看| 在线电影一区二区三区| 欧美色爱综合网| 日本黄色一区二区| 色偷偷成人一区二区三区91| 成人国产在线观看| 成人的网站免费观看| 国产99久久久久| 国产精品主播直播| 国产高清成人在线| 国产精品小仙女| 国产精品亚洲午夜一区二区三区| 看电视剧不卡顿的网站| 麻豆视频观看网址久久| 美女视频一区二区三区| 免费在线视频一区| 久久99国产精品久久99| 精品一区二区三区免费观看| 精品一二三四区| 精品一区二区三区在线观看国产| 另类中文字幕网| 国模娜娜一区二区三区| 国产精选一区二区三区| 国产不卡视频在线观看| 不卡的电视剧免费网站有什么| 不卡高清视频专区| 在线免费观看日本欧美| 欧美在线观看视频一区二区 | 欧美性受xxxx黑人xyx性爽| 91国产免费看| 精品婷婷伊人一区三区三| 欧美精品在线观看一区二区| 日韩免费性生活视频播放| 久久人人爽爽爽人久久久| 国产精品三级av| 亚洲精品国产一区二区精华液| 亚洲电影一区二区| 另类欧美日韩国产在线| 国产精品亚洲成人| 日本韩国一区二区三区视频| 欧美喷潮久久久xxxxx| 欧美mv日韩mv国产网站app| 久久精品视频免费观看| 亚洲欧美在线视频观看| 亚洲成在线观看| 国产原创一区二区三区| 99久精品国产| 欧美丰满高潮xxxx喷水动漫| 久久久久高清精品| 国产激情一区二区三区| av在线综合网| 欧美顶级少妇做爰| 亚洲国产精品精华液ab| 亚洲一卡二卡三卡四卡无卡久久| 蜜桃一区二区三区在线| av不卡免费在线观看| 欧美美女bb生活片| 欧美激情综合网| 亚洲图片欧美综合| 国产精品18久久久久久久久久久久 | 亚洲一二三区不卡| 国产一区视频网站| 一本久久a久久精品亚洲| 日韩三级视频在线观看| 亚洲伦理在线免费看| 老司机精品视频导航| 色综合色综合色综合色综合色综合 | 亚洲综合一二区| 国产乱码一区二区三区| 欧美视频一区在线观看| 久久久精品综合| 欧美在线视频日韩| 久久久精品影视| 婷婷丁香激情综合| 99久久综合国产精品| 日韩美女视频一区二区在线观看| 亚洲人成亚洲人成在线观看图片| 麻豆国产欧美日韩综合精品二区| 一本色道久久综合亚洲91| www成人在线观看| 三级一区在线视频先锋| www.66久久| 国产欧美视频一区二区三区| 日本在线不卡视频| 在线观看亚洲一区| 亚洲欧洲韩国日本视频| 国产剧情一区二区| 欧美成人综合网站| 调教+趴+乳夹+国产+精品| 色国产综合视频| 中文字幕在线一区免费| 国产91精品久久久久久久网曝门 | 日韩欧美在线123| 亚洲国产一区视频| 91麻豆国产福利精品| 国产精品视频一二三区| 国产在线日韩欧美| 精品国产一区二区国模嫣然| 日韩国产在线观看| 欧美老年两性高潮| 亚洲一区二区在线免费看| 亚洲欧洲一区二区在线播放| 国产精品系列在线播放| 久久久蜜臀国产一区二区| 久久成人综合网| 日韩欧美国产一区二区在线播放| 天天射综合影视| 欧美日韩国产123区| 亚洲国产你懂的| 欧美日韩在线观看一区二区| 亚洲一区影音先锋| 欧美在线三级电影| 亚洲成人在线观看视频| 欧美三级视频在线观看| 亚洲观看高清完整版在线观看 | 精品少妇一区二区三区日产乱码| 奇米精品一区二区三区四区| 337p亚洲精品色噜噜| 肉肉av福利一精品导航| 7777精品伊人久久久大香线蕉超级流畅| 亚洲成人av免费| 91精品国产手机| 久久99国产精品麻豆| 国产亚洲成年网址在线观看| 成人高清视频免费观看| 亚洲女女做受ⅹxx高潮| 欧美四级电影网| 免费的成人av| 国产亚洲福利社区一区| 不卡一二三区首页| 亚洲夂夂婷婷色拍ww47| 欧美日本免费一区二区三区| 蜜桃视频第一区免费观看| 久久综合久久久久88| 成人精品视频一区二区三区尤物| 中文字幕一区在线| 在线观看免费视频综合| 日日摸夜夜添夜夜添精品视频 | 亚洲欧美在线视频观看| 欧美午夜精品一区| 久久精品国产亚洲高清剧情介绍| 久久综合网色—综合色88| 99久久综合国产精品| 亚洲大片一区二区三区| 日韩精品一区二区三区在线观看 | 日韩国产在线观看一区| 久久免费视频色| 91视频在线观看免费| 视频一区二区欧美| 六月丁香婷婷色狠狠久久| 一区在线观看免费| 欧美一区二区三区色| 成人禁用看黄a在线| 亚洲国产va精品久久久不卡综合| 欧美草草影院在线视频| av不卡一区二区三区| 另类的小说在线视频另类成人小视频在线| 欧美经典一区二区| 在线播放中文一区| 成人黄色软件下载| 日韩av电影免费观看高清完整版在线观看| 2022国产精品视频| 欧美日韩在线精品一区二区三区激情 | 国产精品99精品久久免费| 一区二区三区欧美亚洲| 久久久久久久综合日本| 欧美日韩国产在线观看| 成人av高清在线|