python使用xmlrpc实例讲解


Posted in Python onDecember 17, 2013

RPC是Remote Procedure Call的缩写,翻译成中文就是远程方法调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。

XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。

它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。
这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。
Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。
Python下的XML-RPC:

1、类库:xmlrpclib    一般使用在客户端,这个模块用来调用注册在XML-RPC服务器端的函数,xmlrpclib并不是一个类型安全的模块,无法抵御恶意构造的数据,这方面的一些处理工作需要交给开发者自己。

2、类库:SimpleXMLRPCServer   一般是用在服务器端,这个模块用来构造一个最基本的XML-RPC服务器框架

3、构造一个基本的XML-RPC Server:

from SimpleXMLRPCServer import SimpleXMLRPCServer
def is_even(n):
    return n%2 == 0
server = SimpleXMLRPCServer(("localhost", 8000))#确定URL和端口
print "Listening on port 8000..."
server.register_function(is_even, "is_even") #注册is_even函数
server.serve_forever()#启动服务器,并使其对这个连接可用

4、构造一个基本的XML-RPC Client:

import xmlrpclib
proxy = xmlrpclib.ServerProxy("http://localhost:8000/")
print "3 is even: %s" % str(proxy.is_even(3))#客户端调用XML-RPC函数
print "100 is even: %s" % str(proxy.is_even(100))
Python 相关文章推荐
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
python opencv判断图像是否为空的实例
Jan 26 Python
python爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
python实现小球弹跳效果
May 10 Python
Python 通过监听端口实现唯一脚本运行方式
May 05 Python
Django在Model保存前记录日志实例
May 14 Python
Python如何进行时间处理
Aug 06 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
python三元运算符实现方法
Dec 17 #Python
用python写asp详细讲解
Dec 16 #Python
python模块restful使用方法实例
Dec 10 #Python
python解析模块(ConfigParser)使用方法
Dec 10 #Python
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 #Python
python socket网络编程步骤详解(socket套接字使用)
Dec 06 #Python
python3图片转换二进制存入mysql
Dec 06 #Python
You might like
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
DOM相关内容速查手册
2007/02/07 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
详解JavaScript操作HTML DOM的基本方式
2015/10/21 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
简单了解TypeScript中如何继承 Error 类
2019/06/21 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
[04:02]2014DOTA2国际邀请赛 BBC每日综述中国战队将再度登顶
2014/07/21 DOTA
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python在linux中输出带颜色的文字的方法
2014/06/19 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
python实现简单名片管理系统
2018/11/30 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python文件路径操作方法总结
2020/12/21 Python
如何将整数int转换成字串String
2014/03/21 面试题
介绍Ibatis的核心类
2013/11/18 面试题
毕业生自荐信格式
2014/03/07 职场文书
电气工程自动化求职信
2014/03/14 职场文书
社区服务活动总结
2014/05/07 职场文书
社区禁毒工作方案
2014/06/02 职场文书
自我管理的活动方案
2014/08/25 职场文书
趵突泉导游词
2015/02/03 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android