python rpyc的應用 ——聊天的功能(帶認證)

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

相關文章
相關標籤/搜索