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