使用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中的列表生成式与生成器学习教程
Mar 13 Python
Python中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
python中正则表达式的使用方法
Feb 25 Python
python线程池threadpool实现篇
Apr 27 Python
Django objects的查询结果转化为json的三种方式的方法
Nov 07 Python
Python实现的批量修改文件后缀名操作示例
Dec 07 Python
解析python实现Lasso回归
Sep 11 Python
Python Numpy数组扩展repeat和tile使用实例解析
Dec 09 Python
python环境下安装opencv库的方法
Mar 05 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
详解如何使用Pytest进行自动化测试
Jan 14 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
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
使用jquery修改表单的提交地址基本思路
2014/06/04 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
完美解决js传递参数中加号和&号自动改变的方法
2016/10/11 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
python3批量删除豆瓣分组下的好友的实现代码
2016/06/07 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
Viking Direct荷兰:购买办公用品
2019/06/20 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
仓库主管岗位职责
2014/03/02 职场文书
公司运动会策划方案
2014/05/25 职场文书
志愿者宣传口号
2014/06/17 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
三好学生评语大全
2014/12/29 职场文书
英语教师求职信范文
2015/03/20 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
MySQL数据库事务的四大特性
2022/04/20 MySQL