下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Python网络编程之xmlrpc模块rpc:远程过程调用协议。简单的来说就是客户端可以很方便得远程调用服务端的接口程序,而不用管底层是如何实现的。
XML-RPC的全称是XMLRemoteProcedureCall,即XML(标准通用标记语言下的一个子集)远程过程调用。它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。这个过程也被大家称为分布式计算。
xmlrpc:使用http协议作为传输协议的rpc机制。
1、注册函数:register_function
以下是定义了一个函数的xmlrpc服务端。
register_function用于注册一个供调用的函数,第一个参数为自己实现的方法名,第二个参数为供客户端调用的方法名。
fromxmlrpc.serverimportSimpleXMLRPCServer#导入模块
s=SimpleXMLRPCServer(("1",4242))#服务端ip假设为1,端口假设为4242
deftwice(x):#定义函数
returnx*2
s.register_function(twice)#注册函数(让客户端发现)
s.serve_forever()#启动服务端
下面是该服务端对应的xmlrpc客户端
根据url和端口号初始化一个服务器对象,然后调用需要的方法即可:
importxmlrpc.client#导入模块
s=xmlrpc.client.ServerProxy('1:4242')#链接服务端
print(s.twice(2))#调用函数
调用成功成功后服务端会显示
2、注册类方法函数:register_instance
服务端如:
fromxmlrpc.serverimportSimpleXMLRPCServer#导入模块
s=SimpleXMLRPCServer(("7",4242))#设置服务端ip和端口
classAnimal:#定义类
defrabit(self,amount):
return4*amount
defchicken(self,amount):
return2*amount
s.register_instance(Animal())#注册类方法函数(让客户端发现)
s.serve_forever()#启动服务端
对应的客户端如下:
importxmlrpc.client#导入模块
s=xmlrpc.client.ServerProxy('7:4242')#链接服务端
print(s.rabit(2))#调用函数
print(s.chicken(2))
3、dispatch方法
接下来要修改一些注册类方法函数接口的参数,对应的修改一下类定义。通过在类定义中添加_dispatch方法可以在远程调用接口的时候经过_dispach。
服务端如下:
fromxmlrpc.serverimportSimpleXMLRPCServer#导入模块
s=SimpleXMLRPCServer(("7",4242))#设置服务端ip和端口
classAnimal:#定义类
def_dispatch(self,method,param):#定义_dispatch方法
print(method)#在服务端显示调用的方法名
func=getattr(self,method)#调用接口
returnfunc(*param)
defrabit(self,amount):
return4*amount
defchicken(self,amount):
return2*amount
s.register_instance(Animal())#注册函数(让客户端发现)
s.serve_forever()#启动服务端
客户端如下:
importxmlrpc.client#导入模块
s=xmlrpc.client.ServerProxy('7:4242')#链接服务端
print(s.rabit(2))#调用函数
print(s.chicken(2))
注:服务器端运行结果:
4、多线程访问
初始化服务器用的不再是SimpleXMLRPCServer了,而是自定义的一个类,继承自两个基类,ThreadingMixIn使其能够支持多线程,其余的操作方式还是和普通的一样。
并且我们新增了一个函数,接受两个参数,计算和,可以看到无
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江苏南通市工会社会工作者招聘21人考试参考题库及答案解析
- 17.钓鱼教学设计-2025-2026学年小学美术一年级下册人美版(常锐伦、欧京海)
- 2025-2026学年儿歌小鱼摇教案
- 2025-2026学年彩虹的花瓣教案
- 2026四川雅安市宝兴县国有企业工作委员会选聘县属国有企业高级管理人员7人考试备考试题及答案解析
- 2025-2026学年颤音教学设计工作室
- 2026年长岭炼化校园招聘笔试备考题库及答案解析
- 2026年中国邮政集团有限公司江西省分公司校园招聘考试备考题库及答案解析
- 2025-2026学年探究式教学设计数学小学
- ABCD 钢琴教学法:四大核心模块与实践指南
- 老年人健康管理-老年人健康管理服务规范
- 机械设备专业题库考试题库
- 含油污泥来源与处理方法综述
- TCPAPE 01-2022 采用吹灌封(BFS)技术生产无菌产品通用技术要求
- 医疗器械说明书和标签管理规定培训课件
- 第三节东北地区的产业分布课件
- 兽医法律法规辅导课件
- 《课间十分钟》-完整版课件
- Illustrator-CC完整版ppt全套课件整本书电子教案最全教学教程
- 变动成本法和完全成本法课件
- 施工升降机回顶方案
评论
0/150
提交评论