首页 > 代码库 > Python之Rpyc模块
Python之Rpyc模块
简介
rpyc (Remote Python Call)为分布式计算环境提供了优良的基础平台。使用rpyc编写c/s结构程序,完全不用考虑老式的socket编程,现在只用编写简单的3、5行代码即可完成以前的数千行代码的功能。
Remote Python Call (RPyC) 是一个 Python 的库用来实现 RPC 和分布式计算的工具。支持同步和异步操作、回调和远程服务以及透明的对象代理。
示例
Server端代码
#!/usr/bin/env python# -*- encoding: utf-8 -*-import timefrom rpyc import Servicefrom rpyc.utils.server import ThreadedServerclass TimeService(Service): # 对于服务端来说, 只有以"exposed_"打头的方法才能被客户端调用,所以要提供给客户端的方法都得加"exposed_" def exposed_get_time(self): return time.ctime() #time模块中的一个内置方法 s=ThreadedServer(service=TimeService,port=12233,auto_register=False)s.start()
客户端代码
#!/usr/bin/env python# -*- encoding: utf-8 -*-import rpyc
conn = rpyc.connect(‘localhost‘,12233)#调用服务器端的方法,格式为:conn.root.xxx。xxx代表服务器端的方法名# get_time是服务端的那个以"exposed_"开头的方法result = conn.root.get_time()print resultconn.close()
RPYC重点:
1.Client一定要 close()连接哦!2.Server中exposed_打头的函数才能被 客户端调用。所以如果写服务端代码的时候想要让客户端调用 就要加这一个前缀。3.client要访问服 务器端代码通过c.root.xxx才能访问,如:c.root.get_time() 调用服务器端get_time方法4.RPYC没有认证机制,任何客 户端都可以直接访问服务器端的暴露的方法
原文链接:
http://doudouclever.blog.163.com/blog/static/17511231020116263409365/
Python之Rpyc模块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。