python 远程方法调用

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

以简单实例讲解:

服务端:

[python] view plain copy
  1. # coding:utf-8  
  2.   
  3. from rpyc import Service  
  4. from rpyc.utils.serverimport ThreadedServer  
  5.   
  6. class TestService(Service):  
  7.   
  8.     # 对于服务端来说, 只有以"exposed_"打头的方法才能被客户端调用,所以要提供给客户端的方法都得加"exposed_"  
  9.     defexposed_test(self, num):  
  10.         return1+num  
  11.   
  12. sr = ThreadedServer(TestRpyc, port=9999, auto_register=False)  
  13. sr.start()  

客户端:
[python] view plain copy
  1. # coding:utf-8  
  2.   
  3. import rpyc  
  4.   
  5. # 参数主要是host, port  
  6. conn =rpyc.connect('localhost',9999)  
  7. # test是服务端的那个以"exposed_"开头的方法  
  8. cResult =conn.root.test(11)  
  9. conn.close()  
  10.   
  11. print cResult  

注:对于返回值cResult
1、如果cResult是数字或字符串的话,那么在conn.close()之后,你可以用cResult的值
2、如果cResult是其它类型的数据的话, 你conn.close()之后,cResult就为空的了(这是因为对于其它类型的返回值,服务端返回的是rpyc.netref的封装nobj, 当访问nobj时,它连接到服务端,取值,并返回给客户端,你close之后就连不到服务端了),所以最好在服务端把计算结果处理下,转换成数字或字符串(对于大字典来说,可以用json转换下,然后客户端再转过来就ok了)


地址:http://rpyc.sourceforge.net/install.html

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值