Python中的XMLRPC服务器和客户端模块

我们可以使用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']