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通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
python使用urllib2实现发送带cookie的请求
Apr 28 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
python如何查看网页代码
Jun 07 Python
Python爬虫+Tkinter制作一个翻译软件的示例
Feb 20 Python
Python 可迭代对象 iterable的具体使用
Aug 07 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
桌面中心(二)数据库写入
2006/10/09 PHP
extjs 为某个事件设置拦截器
2010/01/15 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
加随机数引入脚本不让浏览器读取缓存
2014/09/04 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
JavaScript仿微博输入框效果(案例分析)
2016/12/06 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
2020/12/31 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
vue实现app页面切换动画效果实例
2017/05/23 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
Python格式化css文件的方法
2015/03/10 Python
用Python编写简单的微博爬虫
2016/03/04 Python
详解Python中heapq模块的用法
2016/06/28 Python
python数据爬下来保存的位置
2020/02/17 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
护士自荐信
2013/10/25 职场文书
电脑教师的教学自我评价
2013/11/26 职场文书
教师教学评估方案
2014/05/09 职场文书
商场客服专员岗位职责
2014/06/13 职场文书