我目前正在使用 rpyc 来构建一个服务器和多个将连接到它的客户端。我在客户端中有数据,我想将其推送到服务器以进行进一步处理,并且我想在客户端连接到服务器时通过服务器调用客户端方法来执行此操作。从他们的教程中,它说客户端可以将他们的服务公开给服务器,但是我遇到了错误。
我的服务器的代码:
import rpyc
class TestService(rpyc.Service):
def on_connect(self, conn):
conn.root.example()
if __name__ == "__main__":
from rpyc.utils.server import ThreadedServer
t = ThreadedServer(TestService, port=18861, auto_register=True)
t.start()
我的客户的代码:
import rpyc
class ClientService(rpyc.Service):
def exposed_example(self):
print "example"
if __name__ == "__main__":
try:
rpyc.discover("test")
c = rpyc.connect_by_service("test", service=ClientService)
c.close()
except:
print "could not find server"
客户端能够连接到服务器,但是线程中会出现异常并报错:raise EOFError("stream has been closed")。它抱怨 conn.root.example() 行,我不知道正确的语法是什么,而且教程根本没有指定。
任何帮助都感激不尽!