0

私はPythonで自分のプロキシサーバーのコードを書いています。クライアントとターゲット サーバーからパケットを転送するコードは次のとおりです。

def _read_write(self):
        if self.target:
            pass
        else:
            domain, port = self.get_target_host()
            self._connect_target(domain, port)

        self.target.send(self.headers)

        maxtimeout = self.timeout / 3
        inputs = [self.client, self.target]
        count = 0
        try:

            while 1:
                count += 1
                (recv, send, err) = select.select(inputs, [], inputs)

                if err:
                    break

                if recv:
                    for in_ in recv:
                        data = in_.recv(BUFFLEN)

                        if in_ is self.client:
                            out = self.target
                        else:
                            out = self.client

                        if data:
                            out.send(data)
                            count = 0
                if count == maxtimeout:
                    break
        except select.error:
            print >> sys.stderr, "Error : Internal queue error\n", "Reason : Unknown"

各パケットはクライアントからサーバーに個別に転送されるため、転送されるデータを傍受し、画像、css などのリソースの URL をクライアントから最も近いサーバーの新しい URL に置き換えたいと考えています。これは正しい方法ですか?URLがパケットで区切られていると問題が発生すると思います。

4

1 に答える 1

0

そうです-パケットレベルでこれを行うのは難しいでしょう。より簡単なのは、最初にプロキシでデータ全体を構築し、次に処理を実行してから、データをクライアントに送信することです。

于 2012-04-08T21:43:55.133 に答える