使用XML库的方式,实现RPC通信的方法(推荐)


Posted in Python onJune 14, 2017

1、先说结论:使用xml-rpc的机制可以很方便的实现服务器间的RPC调用。

2、试验结果如下:

使用XML库的方式,实现RPC通信的方法(推荐)

3、源码如下:

服务器端的源代码如下:

import operator, math
from SimpleXMLRPCServer import SimpleXMLRPCServer
from functools import reduce

def main():
  server = SimpleXMLRPCServer(('127.0.0.1', 7001))
  server.register_introspection_functions()
  server.register_multicall_functions()
  server.register_function(addtogether)
  server.register_function(quadratic)
  server.register_function(remote_repr)
  
  print("Server ready")
  server.serve_forever()
  
def addtogether(*things):
  """Add together everything in the list things ."""
  return reduce(operator.add, things)
  
def quadratic(a, b, c):
  """Determine x values satisfying: a * x * x + b * x + c = 0"""
  b24ac = math.sqrt(b*b - 4.0*a*c)
  return list(set([(-b-b24ac) / 2.0*a, (-b+b24ac) / 2.0*a]))
  
def remote_repr(arg):
  """return the repr() rendering of the supplied arg """
  return arg
  
if __name__ == '__main__':
  main()

客户端的代码如下:

import xmlrpclib

def main():
  proxy = xmlrpclib.ServerProxy('http://127.0.0.1:7001')
  
  print("Here are the functions supported by this server:")
  
  print("next calculator addtogether: ")
  print(proxy.addtogether('x','y','z'))
  print(proxy.addtogether('x','y','z'))
  
  print(proxy.addtogether('x','y','z'))
  print(proxy.addtogether('x','y','z'))
  for method_name in proxy.system.listMethods():
    if method_name.startswith('system.'):
      continue
      
    signatures = proxy.system.methodSignature(method_name)
    if isinstance(signatures, list) and signatures:
      for signature in signatures:
        print('%s(%s)' %(method_name, signature))
        
    else:
      print('%s(...)' %(method_name,))
      
    method_help = proxy.system.methodHelp(method_name)
    #if method_help:
    #  print(' ', methodHelp)
  
  print(proxy.addtogether('x','y','z'))
  print("addtogether result ")
      
if __name__ == '__main__':
  main()

以上这篇使用XML库的方式,实现RPC通信的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中__str__和__repr__方法的区别
Apr 17 Python
Python导入oracle数据的方法
Jul 10 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
Django 解决由save方法引发的错误
May 21 Python
浅谈Python中的模块
Jun 10 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 Python
Python中的 Set 与 dict
Mar 13 Python
python实现单线程多任务非阻塞TCP服务端
Jun 13 #Python
Python实现的下载网页源码功能示例
Jun 13 #Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 #Python
老生常谈python之鸭子类和多态
Jun 13 #Python
浅谈scrapy 的基本命令介绍
Jun 13 #Python
python生成词云的实现方法(推荐)
Jun 13 #Python
Python实现Linux中的du命令
Jun 12 #Python
You might like
php5中类的学习
2008/03/28 PHP
sae使用smarty模板的方法
2013/12/17 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
js获取指定的cookie的具体实现
2014/02/20 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
原生JS实现的简单轮播图功能【适合新手】
2018/08/17 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue单页面在微信下只能分享落地页的解决方案
2019/04/15 Javascript
vue实现图片上传功能
2020/05/28 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现接受任意个数参数的函数方法
2018/04/21 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
python爬虫请求头设置代码
2020/07/28 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
python 实现图片批量压缩的示例
2020/12/18 Python
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
final, finally, finalize的区别
2012/03/01 面试题
学生干部的自我评价分享
2014/01/18 职场文书
2014年教师业务学习材料
2014/05/12 职场文书
教师节主持词开场白
2015/05/29 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
详解Redis瘦身指南
2021/05/26 Redis