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中的装饰器详解
Apr 13 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
python字符串编码识别模块chardet简单应用
Jun 15 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
Jan 04 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
将python安装信息加入注册表的示例
Nov 20 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
Jupyter Notebook折叠输出的内容实例
Apr 22 Python
Python sorted对list和dict排序
Jun 09 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
php导入大量数据到mysql性能优化技巧
2014/12/29 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP使用函数用法详解
2018/09/30 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
js通过googleAIP翻译PHP系统的语言配置的实现代码
2011/10/17 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
js实现验证码干扰(静态)
2021/02/22 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
python远程邮件控制电脑升级版
2019/05/23 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
小学生爱国演讲稿
2014/04/25 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
团组织推荐意见
2015/06/05 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
python实现层次聚类的方法
2021/11/01 Python