使用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 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
python在控制台输出进度条的方法
Jun 20 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
Jun 04 Python
tensorflow模型保存、加载之变量重命名实例
Jan 21 Python
python实现简单井字棋游戏
Mar 04 Python
Python Selenium安装及环境配置的实现
Mar 17 Python
python实现3D地图可视化
Mar 25 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
Python中return函数返回值实例用法
Nov 19 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
php自动给文章加关键词链接的函数代码
2012/11/29 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
PHP7 其他修改
2021/03/09 PHP
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
Python从函数参数类型引出元组实例分析
2019/05/28 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
深入学习python多线程与GIL
2019/08/26 Python
python 实现屏幕录制示例
2019/12/23 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
python mock测试的示例
2020/10/19 Python
html5自动播放mov格式视频的实例代码
2020/01/14 HTML / CSS
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
请介绍一下Ant
2016/07/22 面试题
政风行风评议整改方案
2014/09/15 职场文书
考研导师推荐信范文
2015/03/27 职场文书
时尚女魔头观后感
2015/06/04 职场文书
首次购房证明
2015/06/19 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android