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数据库操作常用功能使用详解(创建表/插入数据/获取数据)
Dec 06 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
Jun 21 Python
python的构建工具setup.py的方法使用示例
Oct 23 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
Python连接Mssql基础教程之Python库pymssql
Sep 16 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
详解python Todo清单实战
Nov 01 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
python实现输出一个序列的所有子序列示例
Nov 18 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
如何用Matlab和Python读取Netcdf文件
Feb 19 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
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
2007/09/24 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
JS实现self的resend
2010/07/22 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
详解JavaScript中的blink()方法的使用
2015/06/08 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
js实现放大镜特效
2017/05/18 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
如何基于filter实现网站整体变灰功能
2020/04/17 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
python中partial()基础用法说明
2018/12/30 Python
详解python读取image
2019/04/03 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
python开头的coding设置方法
2019/08/08 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
单位实习证明怎么写
2014/01/17 职场文书
党员承诺书范文
2014/05/19 职场文书
受伤赔偿协议书
2014/09/24 职场文书
喝酒驾驶检讨书
2014/10/01 职场文书
立春观后感
2015/06/18 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
Python何绘制带有背景色块的折线图
2022/04/23 Python
MySQL数据库如何查看表占用空间大小
2022/06/10 MySQL