使用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 PIL模块与随机生成中文验证码
Feb 27 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
Python用imghdr模块识别图片格式实例解析
Jan 11 Python
TensorFlow实现非线性支持向量机的实现方法
Apr 28 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
详解利用python+opencv识别图片中的圆形(霍夫变换)
Jul 01 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
Python天气语音播报小助手
Sep 25 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
2014/08/14 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
python爬虫基本知识
2018/03/05 Python
python使用RNN实现文本分类
2018/05/24 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
pytorch中的inference使用实例
2020/02/20 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
学雷锋树新风演讲稿
2014/05/10 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
员工年终自我评价
2014/09/14 职场文书
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
配置nginx负载均衡
2022/05/06 Servers
CSS SandBox应用场景及常见问题
2022/06/25 HTML / CSS