Python XML RPC服务器端和客户端实例


Posted in Python onNovember 22, 2014

一、远程过程调用RPC

XML-RPC is a Remote Procedure Call method that uses XML passed via HTTP as a transport. With it, a client can call methods with parameters on a remote server (the server is named by a URI) and get back structured data. This module supports writing XML-RPC client code; it handles all the details of translating between conformable Python objects and XML on the wire.

简单地,client可以调用server上提供的方法,然后得到执行的结果。类似与webservice。

推荐查看xmlprc的源文件:C:\Python31\Lib\xmlrpc

二、实例

1) Server

from xmlrpc.server import SimpleXMLRPCServer

from xmlrpc.server import SimpleXMLRPCRequestHandler
def div(x,y):

    return x - y

    

class Math:

    def _listMethods(self):

        # this method must be present for system.listMethods

        # to work

        return ['add', 'pow']

    def _methodHelp(self, method):

        # this method must be present for system.methodHelp

        # to work

        if method == 'add':

            return "add(2,3) => 5"

        elif method == 'pow':

            return "pow(x, y[, z]) => number"

        else:

            # By convention, return empty

            # string if no help is available

            return ""

    def _dispatch(self, method, params):

        if method == 'pow':

            return pow(*params)

        elif method == 'add':

            return params[0] + params[1]

        else:

            raise 'bad method'
server = SimpleXMLRPCServer(("localhost", 8000))

server.register_introspection_functions()

server.register_function(div,"div")

server.register_function(lambda x,y: x*y, 'multiply')

server.register_instance(Math())

server.serve_forever()

2)client

import xmlrpc.client
s = xmlrpc.client.ServerProxy('http://localhost:8000')
print(s.system.listMethods())
print(s.pow(2,3))  # Returns 28

print(s.add(2,3))  # Returns 5

print(s.div(3,2))  # Returns 1

print(s.multiply(4,5)) # Returns 20

3)result

Python XML RPC服务器端和客户端实例

Python 相关文章推荐
从零学python系列之数据处理编程实例(一)
May 22 Python
Python中使用ElementTree解析XML示例
Jun 02 Python
Python实现pdf文档转txt的方法示例
Jan 19 Python
Python简单计算给定某一年的某一天是星期几示例
Jun 27 Python
pandas 按照特定顺序输出的实现代码
Jul 10 Python
python安装requests库的实例代码
Jun 25 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
自定义django admin model表单提交的例子
Aug 23 Python
python实现网站微信登录的示例代码
Sep 18 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
python中怎么表示空值
Jun 19 Python
python 简单的调用有道翻译
Nov 25 Python
Python实现读取目录所有文件的文件名并保存到txt文件代码
Nov 22 #Python
python进程类subprocess的一些操作方法例子
Nov 22 #Python
Python读取环境变量的方法和自定义类分享
Nov 22 #Python
Python中的引用和拷贝浅析
Nov 22 #Python
python实现的文件夹清理程序分享
Nov 22 #Python
Python判断操作系统类型代码分享
Nov 22 #Python
python logging类库使用例子
Nov 22 #Python
You might like
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
浅谈PHP中的Trait使用方法
2019/03/22 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
javascript调试说明
2010/06/07 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
javascript中字符串拼接详解
2014/09/26 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
在ABP框架中使用BootstrapTable组件的方法
2017/07/31 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
2017/08/21 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
JS中数据结构之栈
2019/01/01 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
D3.js(v3)+react 实现带坐标与比例尺的散点图 (V3版本)
2019/05/09 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
[54:47]Liquid vs VP Supermajor决赛 BO 第五场 6.10
2018/07/05 DOTA
Python模拟登录12306的方法
2014/12/30 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
深入理解python中sort()与sorted()的区别
2018/08/29 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
腾讯广告词
2014/03/19 职场文书
领导干部保密承诺书
2014/08/30 职场文书
学生保证书
2015/01/16 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js
SpringBoot+Vue+JWT的前后端分离登录认证详细步骤
2021/09/25 Java/Android
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android