【发布时间】:2011-11-08 08:23:58
【问题描述】:
xmlrpc-connection可以设置clientport吗?
我想说:
客户端应该通过特定的客户端端口创建一个 ServerProxy 对象
或类似这样的伪代码:
serv = xmlrpclib.ServerProxy("server:port","overSpecificClientPort").
【问题讨论】:
xmlrpc-connection可以设置clientport吗?
我想说:
客户端应该通过特定的客户端端口创建一个 ServerProxy 对象
或类似这样的伪代码:
serv = xmlrpclib.ServerProxy("server:port","overSpecificClientPort").
【问题讨论】:
尝试定义自定义传输。这应该是这样的:
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(但不是之前)中检查它是否有效
【讨论】:
在模块 xmlrpclib 中没有此选项,但您可以通过修改原始版本来创建自己的。假设您使用 Linux,请获取 /usr/lib/python2.7/xmlrpclib.py。相应地修改方法make_connection。
httplib 不支持在 Python 2.7 版之前提供参数 source_address 到 HTTPConnection。
玩得开心!
【讨论】: