rpyc (Remote Python Call)为分布式计算环境提供了优良的基础平台。 使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3、5行代码即可完成以前的数千行代码的功能。

Remote Python Call (RPyC) 是一个 Python 的库用来实现 RPC 和分布式计算的工具。支持同步和异步操作、回调和远程服务以及透明的对象代理。

1.写服务器端的方法如下:

#-*- encoding: gb2312 -*-

import time

from rpyc import Service

from rpyc.utils.server import ThreadedServer

class TimeService(Service):

def exposed_get_time(self):

return time.ctime() #time模块中的一个内置方法

s=ThreadedServer(TimeService,port=12233,auto_register=False)

s.start()

RPYC 这个包是我导入的一个外部包的哦!不过通过help一样可以查看到这个包的内在的一些东西哈哈!

2.服务器开启现在来让客户端进行访问了!

import rpyc

c=rpyc.connect('localhost',12233)

c.root.get_time()

c.close()

现 在来想一个事情。之前在RO通讯模块中就是我们在服务器端写了一个方法然后我们就可在客户端直接调用了哦!

比如我们在服务器端写了一个计算sum 函数 然后我们就可以在客户端进行调用这个函数了哦!

那我们来看一下这里的机制吧!

RPYC重点:

1.Client一定要 close()连接哦!

2.Server中exposed_打头的函数才能被 客户端调用。

所以如果写服务端代码的时候想要让客户端调用 就要加这一个前缀哦

c=rpyc.connect('localhost',12233) #首先要连接服务器

3.client要访问服 务器端代码通过c.root才能访问哦!

c.root.get_time() 调用服务器端方法了!

4.RPYC没有认证机制,任何客 户端都可以直接访问服务器端的暴露的方法了!

OK,联系当前在RO中写过的一个方法哦!

import time

from rpyc import Service

from rpyc.utils.server import ThreadedServer

class TimeService(Service):

def exposed_sum(self,a,b):

return a+b

s=ThreadedServer(TimeService,port=12233,auto_register=False)

s.start()

我 先在服务器端写了一个方法求和操作!

让客户端进行直接调用 吧!

import rpyc

c=rpyc.connect('localhost',12233)

print c.root.sum(1,2)

c.close()

本质与RO原理是一样的哦!

以后我们只需要在服务器端定义好一些写好的方法 然后在客户端直接调用就可以了!

v=c.root.function()

返回了一个值。如果是字符串,数字,在c.close之后仍然能 够调用的

如果为其他类型则不能访问了!

python远程方法调用_Python远程方法调用 RPyC相关推荐

  1. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  2. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  3. Python学习教程(Python学习视频_Python学习路线):Day04循环结构

    Python学习教程(Python学习视频_Python学习路线):循环结构 循环结构的应用场景 如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入 ...

  4. 视频教程-快速入门Python基础教程_Python基础进阶视频-Python

    快速入门Python基础教程_Python基础进阶视频 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥199.00 立 ...

  5. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  6. python接口测试实战_Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    课程目录 更多学习资料请加添加作者微信:superz-han获取 本节内容 REST及RESTful API Web Service XML解析 Mock Server REST及RESTful AP ...

  7. python dict遍历_python入门

    python:简洁,优雅,快捷 简洁到变量可以不用定义直接用,可以调用很多函数,方便移植,对数据的处理速度快,但是耗内存 我学习python的时候,感觉这就像是在看小学生的作业,当然只是刚学习到了基础 ...

  8. python度量学习_Python的差异度量

    python度量学习 Hi folks, welcome back to my new edition of the blog, thank you so much for your love and ...

  9. python绘制四叶草_python绘图四叶草_Python教程,python,绘图

    Python阶乘求和的方法_Python教程 Python阶乘求和的方法:首先定义一个getSum函数,在函数内使用for循环调用fact函数:然后在fact函数内对一个数进行求阶乘运算,并将计算的结 ...

最新文章

  1. mysql 插入表情符号 '\xF0\x9F\x8D\xB0/...' 报错的解决方法
  2. 函数计算工具链新成员 —— Fun Local 发布啦
  3. iOS9临时性解决HTTP以及scheme跳转问题
  4. 如何使用 Python 进行时间序列预测?
  5. JS之数据_变量_内存v(**V**)v(2)
  6. 时间轴CSS的Demo
  7. live555 源码分析:ServerMediaSession
  8. 48岁的C语言,你知道它背后的历史吗?
  9. 软件开发工具(第2章:软件开发过程及其组织)
  10. 用户 与组的相关练习
  11. 计算机多媒体故障,多媒体教室设备常见故障及处理方法
  12. 【MM32F5270开发板试用】基于MindSDK对接雨滴传感器
  13. Kotlin 元编程(注解,反射)
  14. Convolution1D与Convolution2D区别
  15. Android应用接入微信分享,以及遇到的坑
  16. CF卡转模式(本地)
  17. PowerBI中使用SVG图标简单介绍
  18. 数据仓库工具箱 第10节 金融服务
  19. 沙盘ROS机器人调试使用记录
  20. 关于OSTA证书查询方式的改变(渠道合作)

热门文章

  1. MATLAB 部署工具(Deployment Tool)的使用——MATLAB与C#混合编程
  2. 线性联立方程的高斯赛德尔迭代(Gauss-Seidel iteration)(python,数值积分)
  3. 超好用的java反编译工具(Java Decompiler)
  4. 托福高频真词List01 // 附阅读真题
  5. 计算机算法发展史文献,多舛的创新历程:国内结构分析软件发展历程之高校篇...
  6. JAVA2实用教程(第5版)第二章
  7. LCD屏应用--笔记
  8. 图片批量转为PDF怎么转?这些方法亲测实用
  9. 企业管理培训讲座在线观看目录
  10. threejs加载3D模型