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 25 Python
在Python中操作文件之read()方法的使用教程
May 24 Python
Python2.x中文乱码问题解决方法
Jun 02 Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 Python
python实现将汉字保存成文本的方法
Nov 16 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
PyCharm 2020.2 安装详细教程
Sep 25 Python
利用Python实现Picgo图床工具
Nov 23 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/03/04 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
2020/06/02 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
2013/04/12 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
javascript设计模式之module(模块)模式
2016/08/19 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
python方向键控制上下左右代码
2018/01/20 Python
Python实现的计算马氏距离算法示例
2018/04/03 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(三)
2013/01/21 HTML / CSS
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
30岁生日感言
2014/01/25 职场文书
学生保证书范文
2014/04/28 职场文书
校运会口号
2014/06/18 职场文书
2014年民政工作总结
2014/11/26 职场文书
上诉状格式
2015/05/23 职场文书
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android