python 代理服务器_Python实现HTTP代理服务器
這些天閑來無事就研究了下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 代理服务器_Python实现HTTP代理服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python执行shell命令、并获取执
- 下一篇: vba php,VBA