rpc:遠程過程調用,一個協議,實現的語言有不少。顧名思義,在A機器遠程調用B機器裏面的函數。 rpyc:python的遠程過程調用。html
首先是安裝,個人環境:centos6.5python
cd /usr/local/src/ wget https://pypi.python.org/packages/source/r/rpyc/rpyc-3.2.3.tar.gz --no-check-certificate tar -zxvf rpyc-3.2.3.tar.gz cd rpyc-3.2.3 python setup.py install
測試下,運行linux
[root@Master rpyc-3.2.3]# python -c 'import rpyc'
沒有錯誤就說明安裝好了vim
如今作一個功能就是聊天會話的功能,理解下。 一個server端,一個client端。centos
vim server.py 輸入:函數
[root@Master rpyc-3.2.3]# vim server.py #-*- encoding: utf-8 -*- from rpyc import Service from rpyc.utils.server import ThreadedServer class ManagerService(Service): #rpyc只傳送exposed_開頭的函數 #進行鏈接用戶認證 user和passwd 隨便起一個,和linux用戶不要緊 def exposed_login(self,user,passwd): if user=="root" and passwd=="KJS23o4ij09gHF734iuhsdfhkGYSihoiwhj38u4h": self.Checkout_pass=True else: self.Checkout_pass=False #認證成功後執行接收到的命令關返回結果 def exposed_cmd(self,command): try: if self.Checkout_pass!=True: return "User verify failed!" except: return "Invalid Login!" print "他說:",command ret=raw_input("我說:") return ret #啓動進程服務 s=ThreadedServer(ManagerService,port=11511,auto_register=False) s.start()
這個地方注意下:待會先啓動server.py測試
而後再開啓一個終端(或者是裝了rpyc的其餘機器,鏈接的時候將127.0.0.1換成server的ip) vim client.pycode
#-*- encoding: utf-8 -*- import rpyc conn=rpyc.connect('127.0.0.1',11511) conn.root.login('root','KJS23o4ij09gHF734iuhsdfhkGYSihoiwhj38u4h') while 1: command=raw_input("我說:") message=conn.root.cmd(command) print "他說:",message
寫好了事後,注意!!!!!!!!! 先啓動server.py 而後啓動client.pyserver
rpyc用來聊天? 也過低級了。 換位思考下,都能交互了,還有啥不能作。 client發送命令,server獲取了,而後去執行,還有什麼不能作的。 參考: rpyc 官網:http://rpyc.readthedocs.org/en/latest/index.htmlhtm