Python之Rpyc模块

RPyC是一个用于实现远程过程调用(RPC)和分布式计算的Python库。支持同步和异步操作,提供了透明的对象代理。本文介绍如何使用RPyC创建一个简单的服务端和客户端应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

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 time
from rpyc import Service
from rpyc.utils.server import ThreadedServer

class 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 result conn.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/

 

转载于:https://www.cnblogs.com/MacoLee/p/5830165.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值