• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中实现远程调用(RPC、RMI)简单例子

Python中实现远程调用(RPC、RMI)简单例子

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了rpc rmi,rpc与rmi区别,rmi,java rmi,rmi是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

远程调用使得调用远程服务器的对象、方法的方式就和调用本地对象、方法的方式差不多,因为我们通过网络编程把这些都隐藏起来了。远程调用是分布式系统的基础。

远程调用一般分为两种,远程过程调用(RPC)和远程方法调用(RMI)。

RPC

RPC属于函数级别的远程调用,其多是通过HTTP传输数据,数据形式有XML、JSON、序列化数据等。在此,用python做一个xml-rpc的示例。 先给服务器端server.py:

from xmlrpclib import ServerProxy
if __name__ == '__main__':
    s = ServerProxy("http://127.0.0.1:8080")
    print s.add(3,4)</div>
现在,运行server.py,然后运行client.py,client.py所在的console会输出7。

我们用wireshark看一下这期间传递的数据是什么样子的,请求的数据:

RMI

RMI意为远程方法调用,粒度比RPC要大,因为它的基本单位是对象。其大致思路是这样的:创建RMI服务器对象,将实例化的某个对象以指定的服务名称(也可以是多个对象,但是服务名称不应相同)注册到RMI服务器对象中,之后启动RMI服务器。服务器等待客户端发送的数据(包括服务名称、函数名、参数),将处理结果返回给客户端。 Pyro4是一个基于python的RMI实现,下面我们用Pyro4创建一个RMI服务器,请看server2.py:

import Pyro4
uri=raw_input(" Pyro uri : ").strip()
name=raw_input("Your name: ").strip()
greeting_maker=Pyro4.Proxy(uri)       
print greeting_maker.get_fortune(name)</div>
这其中要输入的uri也就是server2.py生成的uri。通过给Pyro4.Proxy传递greeting_maker的uri,可以认为和服务器端的greeting_maker建立的连接,然后调用greeting_maker的get_fortune()方法。如果name是letian,那么print greeting_maker.get_fortune(name)的结果是Hello, letian.。

</div>

您可能想查找下面的文章:

  • Python中实现远程调用(RPC、RMI)简单例子
  • Python中实现远程调用(RPC、RMI)简单例子

相关文章

  • 在Django中创建动态视图的教程
  • Python中optionParser模块的使用方法实例教程
  • python制作最美应用的爬虫
  • python实现逻辑回归的方法示例
  • 使用Django的模版来配合字符串翻译工作
  • Python获取Windows或Linux主机名称通用函数分享
  • Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
  • Python获取文件ssdeep值的方法
  • Python中asyncore异步模块的用法及实现httpclient的实例
  • Python中的命令行参数解析工具之docopt详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python 生成不重复的随机数的代码
    • python实现查询苹果手机维修进度
    • Python连接mysql数据库的正确姿势
    • 详解Python中映射类型的内建函数和工厂函数
    • 从零学python系列之数据处理编程实例(一)
    • pytyon 带有重复的全排列
    • 使用Python生成XML的方法实例
    • pydev使用wxpython找不到路径的解决方法
    • python encode和decode的妙用
    • Python使用urllib2模块抓取HTML页面资源的实例分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有