0

xmlrpc-connection の clientport を設定することは可能ですか?

私は言いたい:

クライアントは、特定のクライアント ポートを介して ServerProxy オブジェクトを作成する必要があります

または、次のような疑似コードを作成します。

serv = xmlrpclib.ServerProxy("server:port","overSpecificClientPort").
4

2 に答える 2

1

カスタムトランスポートを定義してみてください。これは次のようになります。

import xmlrpclib, httplib

class sourcedTransport(xmlrpclib.Transport):
    def setSource(self, src):
        self.src = src
    def make_connection(self, host):
        h = httplib.HTTPConnection(host, source_address= self.src)
        return h

srcPort = 43040
srcAddress = ('', srcPort)
p = sourcedTransport()
p.setSource(srcAddress)
server = xmlrpclib.ServerProxy("server:port", transport=p)

編集:バグ修正httplib.HTTP => httplib.HTTPConnection

そして、Python 2.7で動作することを確認しました(以前は動作しませんでした)

于 2011-09-01T12:54:01.007 に答える
-2

モジュールxmlrpclibにはこれに対するオプションはありませんが、元のバージョンを変更することで独自のオプションを作成できます。Linuxを使用していると仮定して、フェッチし/usr/lib/python2.7/xmlrpclib.pyます。make_connectionそれに応じてメソッドを変更します。

にパラメータsource_addressを提供することは、 HTTPConnectionPythonバージョン2.7より前ではなくhttplibによってサポートされています。

楽しむ!

于 2011-09-01T12:53:47.120 に答える