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)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值