加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python实现HTTP代理服务器

发布时间:2020-05-24 23:33:23 所属栏目:Python 来源:互联网
导读:Python实现HTTP代理服务器

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

这些天闲来无事就研究了下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代理服务器 作者: 大地瓜

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读