2014-11-14 84 views
1

我正在使用rpyc在python中的程序工作。我的目標是創建一個簡單的服務器,接受來自客戶端的數據字節(字符串)。我對python和rpyc都是新手。 這裏是我的server.py代碼:簡單rpyc客戶端和服務器發送字符串數據

from rpyc.utils.server import ThreadedServer # or ForkingServer 

class MyService(rpyc.Service): 
    # My service 
    pass 

if __name__ == "__main__": 
    server = ThreadedServer(MyService, port = 18812) 
    server.start() 

再有就是我client.py代碼:

from rpyc.core.stream import SocketStream 
from rpyc.core.channel import Channel 

b = SocketStream.connect("localhost", 18812) 
c = Channel(b, compress=True) 
c.send("abc") 

b.close() 
c.close() 

尚未運行我client.py當在控制檯的錯誤。如果我正確理解它,我必須在與客戶端關聯的server.py中創建一個流。是這樣嗎?我怎麼能做到這一點?

回答

1

您正在使用低級別原語,但您沒有將Protocol放在這些原語上。無論如何,你真的不需要去那裏。這裏有你想要做什麼:

myserver.py

from rpyc.utils.server import ThreadedServer 

class MyService(rpyc.Service): 
    # My service 
    def exposed_echo(self, text): 
     return text 

if __name__ == "__main__": 
    server = ThreadedServer(MyService, port = 18812) 
    server.start() 

然後打開一個Python shell並嘗試

>>> import rpyc 
>>> c = rpyc.connect("localhost", 18812) 
>>> c.root.echo("hello") 
'hello' 

注意,這是使用面向服務的模式。您也可以使用經典模式。只需運行bin/rpyc_classic.py然後用rpyc.classic.connect("host")連接

相關問題