Python:是否可以使用xmlrpclib设置clientport?

时间:2011-09-01 11:49:17

标签: python xml-rpc xmlrpclib

是否可以为xmlrpc-connection设置clientport?

我想说:

  

客户端应该将ServerProxy对象设置为通过特定的客户端端口

或伪代码如下:

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

2 个答案:

答案 0 :(得分: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(但不是之前)

答案 1 :(得分:-2)

模块xmlrpclib中没有此选项,但您可以通过修改原始版本来创建自己的选项。假设您使用Linux,请获取/usr/lib/python2.7/xmlrpclib.py。相应地修改方法make_connection

httplib支持向source_address提供参数HTTPConnection,而不是在Python 2.7之前。

玩得开心!