• 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)简单例子

相关文章

  • python通过BF算法实现关键词匹配的方法
  • python缩进区别分析
  • 使用Python编写vim插件的简单示例
  • python集合用法实例分析
  • python类继承用法实例分析
  • Python通过RabbitMQ服务器实现交换机功能的实例教程
  • 利用QT写一个极简单的图形化Python闹钟程序
  • python3.5实现socket通讯示例(TCP)
  • 跟老齐学Python之重回函数
  • 用ReactJS和Python的Flask框架编写留言板的代码示例

文章分类

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

最近更新的内容

    • 解读Python selenium的等待方式
    • PyMongo安装使用笔记
    • Python制作Windows系统服务
    • python实现网站的模拟登录
    • python通过自定义isnumber函数判断字符串是否为数字的方法
    • 用Python程序抓取网页的HTML信息的一个小实例
    • 在Python中使用swapCase()方法转换大小写的教程
    • Python实现Windows上气泡提醒效果的方法
    • python Django连接MySQL数据库做增删改查
    • Python 中urls.py:URL dispatcher(路由配置文件)详解

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

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