xmlrpc的一个奇怪的行为

时间:2016-09-15 15:10:43

标签: python

这是代码:
服务器部分并从机器10.42.0.1调用:

from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ()

server = SimpleXMLRPCServer(('10.42.0.1', 8000),
                        requestHandler=RequestHandler)

server.register_function(adder, 'add')

print('initialize finish')
server.serve_forever()

客户端部分,并从机器10.42.0.2调用:

import xmlrpc.client
s = xmlrpc.client.ServerProxy('http://10.42.0.1:8000')
print(s.add(2,3))

但是,我收到了机器10.42.0.2的错误消息:
ConnectionRefusedError:[Errno 111]。 telnet 10.42.0.1 8000也失败了。

然后,我改变了这句话:

server = SimpleXMLRPCServer(('10.42.0.1', 8000),
                        requestHandler=RequestHandler)

为:

server = SimpleXMLRPCServer(('', 8000),
                        requestHandler=RequestHandler)

重启xmlrpc服务器,这次xmlrpc客户端正常工作。然后我将这句话改为:

server = SimpleXMLRPCServer(('10.42.0.1', 8001),
                        requestHandler=RequestHandler)

打开一个新的xmlrpc服务器,并将客户端代码更改为:

import xmlrpc.client
s = xmlrpc.client.ServerProxy('http://10.42.0.1:8001')
print(s.add(2,3))

启动一个新的xmlrpc客户端,客户端现在也可以工作。

有人帮我解释这个奇怪的现象吗? 有点像没有构建的arp表。

0 个答案:

没有答案