我们可以使用XML-RPC创建自己的跨平台,独立于语言的服务器,并protocol.We使用SimpleXMLRPCServer创建SimpleXMLRPCServer实例并告诉它侦听传入的请求。接下来,我们定义一些功能作为服务的一部分,并注册这些功能,以便服务器知道如何调用它。
在下面的示例中,我们使用SimpleXMLRPCServer实例创建服务器,并注册一些预定义以及自定义函数。最后,我们将服务器置于无限循环中,以接收和响应请求。
fromxmlrpc.serverimport SimpleXMLRPCServer fromxmlrpc.serverimport SimpleXMLRPCRequestHandler class RequestHandler(SimpleXMLRPCRequestHandler): rpc_paths = ('/RPC2',) with SimpleXMLRPCServer(('localhost', 9000), requestHandler=RequestHandler) as server: server.register_introspection_functions() # 注册len()函数; server.register_function(len) # 用其他名称注册功能 @server.register_function(name='rmndr') def remainder_function(x, y): return x // ÿ # 在function .__ name__下注册一个函数。 @server.register_function def modl(x, y): return x % y server.serve_forever()
一旦启动上述服务器,就可以由客户端程序调用该服务器,该客户端程序可以引用这些函数并进行函数调用。
import xmlrpc.client s = xmlrpc.client.ServerProxy('http://localhost:9000') print(s.len("Nhooo")) print(s.rmndr(12,5)) print(s.modl(7,3)) # 打印可用方法列表 print(s.system.listMethods())
运行上面的代码给我们以下结果-
14 2 1 ['len', 'modl', 'rmndr', 'system.listMethods', 'system.methodHelp', 'system.methodSignature']