【问题标题】:Python: Is it possible to set the clientport with xmlrpclib?Python:是否可以使用 xmlrpclib 设置客户端端口?
【发布时间】:2011-11-08 08:23:58
【问题描述】:

xmlrpc-connection可以设置clientport吗?

我想说:

客户端应该通过特定的客户端端口创建一个 ServerProxy 对象

或类似这样的伪代码:

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

【问题讨论】:

    标签: python xml-rpc xmlrpclib


    【解决方案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(但不是之前)中检查它是否有效

    【讨论】:

      【解决方案2】:

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

      httplib 不支持在 Python 2.7 版之前提供参数 source_addressHTTPConnection

      玩得开心!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多