Python RPC 之 xml-rpc

xml-rpc 简介:

xml-rpc 的全称是 XML Remote Procedure Call,即XML远程方法调用。它是一套基于 Internet 过程调用而实现了平台无关性与语言无关性的标准规范。不同语言有不同 xml-rpc 实现,本篇主要介绍 python 的 xml-rpc 实现。

安装 xml-rpc:

python sdk 原生支持了xml-rpc,所以只要安装了python sdk 就可以使用xml-rpc了。

实践:

下面我们使用 xml-rpc 定义一个接口,该接口实现对传入的数据进行大写的格式化处理。

  • 创建 xmlrpc_demo python 工程:
Paste_Image.png
  1. client 目录下的 client.py 实现了客户端用于发送数据并打印接收到 server 端处理后的数据
  1. server 目录下的 server.py 实现了服务端用于接收客户端发送的数据,并对数据进行大写处理后返回给客户端
  • 实现 server 端:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'xieyanke'

from xmlrpc.server import SimpleXMLRPCRequestHandler, SimpleXMLRPCServer

__HOST = 'localhost'
__PORT = '8008'


class RPCHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = (
        '/',   # 定义 RPC 接口的请求地址
    )


with SimpleXMLRPCServer((__HOST, __PORT), requestHandler=RPCHandler) as rpcserver:
    rpcserver.register_introspection_functions()


    def formate_data(str):
        return str.upper()


    rpcserver.register_function(formate_data, 'formate_data')  # 这里 'formate_data' 可以不与自定义的方法名字相同,只要 server 端与 client 端做好约定即可

    rpcserver.serve_forever()
  • 实现 client 端:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

__author__ = 'xieyanke'

import xmlrpc.client

__HOST = 'localhost'
__PORT = '8080'

server = xmlrpc.client.ServerProxy('http://' + __HOST + ':' + __PORT + '/')  # 这里需要注意的是结尾的 ‘/' 必须存在,如果不绑定根,xmlrpc client 默认绑定的 url 为 host:port/RPC2 

print(server.formate_data('hello,world!'))
  • 执行验证结果:
  1. 先启动 server,之后再执行 client
  1. client 侧控制台如果打印的结果为: HELLO,WORLD! ,证明 xml-rpc 接口定义成功

  • 交流可以加 QQ 群:397234385
  • 或者 QQ 扫码入群:
qq群.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,700评论 6 427
  • 转自:http://blog.csdn.net/kesonyk/article/details/50924489 ...
    晴天哥_王志阅读 25,031评论 2 38
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 18,962评论 4 418
  • 兔子吃掉树上的山楂 傍晚母亲立在门口的石头上 胃里翻江倒海 夜晚骑着马 我忽然闻到了雨的味道 风害羞地藏起来 漆黑...
    在窗台阅读 1,501评论 6 1