使用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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python学习入门之区块链详解
Jul 25 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
用python做游戏的细节详解
Jun 25 Python
python动态进度条的实现代码
Jul 03 Python
python实现爬取百度图片的方法示例
Jul 06 Python
Python的缺点和劣势分析
Nov 19 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
如何通过python计算圆周率PI
Nov 11 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
python中pycryto实现数据加密
Apr 29 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
IIS下PHP的三种配置方式对比
2014/11/20 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
JavaScript调用Activex控件的事件的实现方法
2010/04/11 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
JavaScript实现省市联动效果
2019/11/22 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python3基础之条件与循环控制实例解析
2014/08/13 Python
Django实现图片文字同时提交的方法
2015/05/26 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
python交易记录整合交易类详解
2019/07/03 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
美国礼品卡商城: Gift Card Mall
2017/08/25 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
店长岗位职责
2013/11/21 职场文书
自荐信封面
2013/12/04 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
请假条怎么写
2014/04/10 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
交警失职检讨书
2015/01/26 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书