2014-11-14 12 views
1

나는 rpyc를 사용하여 파이썬에서 프로그램을 만들고 있습니다. 내 목표는 클라이언트에서 바이트 데이터 (문자열) 받아들이는 간단한 서버를 만드는 것입니다. 나는 파이썬과 rpyc 모두에 새로운 사람이다. 그러나간단한 rpyc 클라이언트와 문자열 데이터를 전송하는 서버

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를 실행할 때 콘솔에 오류가 :

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 코드가있다 : 여기 내 server.py 코드입니다. 올바르게 이해했다면 server.py에 클라이언트와 관련된 스트림을 만들어야합니다. 그럴까요? 나는 그것을 어떻게 얻을 수 있습니까?

답변

1

저수준 프리미티브를 사용하고 있지만 프로토콜에 프로토콜을 적용하지 않았습니다. 어쨌든, 당신은 정말로 거기에 갈 필요가 없습니다. 여기에 당신이 원하는 무엇 :

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() 

는 파이썬 쉘을 열고이 서비스 지향 모드를 사용하고 있음을

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

메모를하려고합니다. 클래식 모드를 사용할 수도 있습니다. bin/rpyc_classic.py을 실행 한 다음 rpyc.classic.connect("host")

을 사용하여 연결하십시오.