Python实现HTTP代理服务器
发布时间:2020-12-17 17:26:53 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 这些天闲来无事就研究了下HTTP代理原理,顺便用Python做了个很挫的程序。 import socketimport threadingclass ProxyServer(): def __init__(self): s
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考
这些天闲来无事就研究了下HTTP代理原理,顺便用Python做了个很挫的程序。
import socket import threading class ProxyServer(): def __init__(self): self.ListenSock = socket() self.ListenSock.bind() self.Clients = [] def listen_thread(self): self.ListenSock.listen() while(1): self.Clients.append(ProxyClient(self.ListenSock.accpet()) def start_work(self): start listen_thread while(1): #从内存中踢出已经断开的连接 for i in self.client: if i not alive: self.clients.remove(i) class ProxyClient(): def __init__(self,Csock): self.Csock = Csock self.Rsock = None start request_process_thread def request_process_thread(self): while(1): req = self.Csock.recv() #客户端断开了 if req == '': return #从请求中获得客户端想要访问的地址 addr = get addr from req if self.Rsock == None: self.Rsock.connect(addr) #把客户端的请求转出去 self.Rscok.send(req) #开启接受web data的线程,把web data转发给客户端 start recv_web_data_thread else: #如果连接已经建立就不要再去创建新的 self.Rsock.send(req) def recv_web_data_thread(self): while(1): data = self.Rsock.recv() if data=='': return #把web data转发给客户端 self.Csock.send(data) ?
原文地址:
Python实现HTTP代理服务器
作者:
大地瓜
以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |