这是代码:
服务器部分并从机器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表。