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实现人人网登录示例分享
Jan 19 Python
Python开发常用的一些开源Package分享
Feb 14 Python
Python程序中用csv模块来操作csv文件的基本使用教程
Mar 03 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
利用python如何在前程无忧高效投递简历
May 07 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
python 实现图片裁剪小工具
Feb 02 Python
Pytorch使用shuffle打乱数据的操作
May 20 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入门之常量简介和系统常量
2014/05/12 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
Laravel 队列使用的实现
2019/01/08 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
javascript使用call调用微信API
2014/12/15 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
2020/04/28 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
Vue项目路由刷新的实现代码
2019/04/17 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python路径的写法及目录的获取方式
2019/12/26 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
美国最大的电子宠物训练产品制造商:PetSafe
2018/10/12 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
《老王》教学反思
2014/02/23 职场文书
岗位职责风险点
2014/03/12 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
英语辞职信范文
2015/02/28 职场文书
七一活动主持词
2015/06/29 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技