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 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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM