В настоящее время я использую 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"
Клиент может подключиться к серверу, но в потоке возникнет исключительная ситуация: ошибка EOFError («поток был закрыт»).Он жалуется на строку conn.root.example (), и я не знаю, какой будет правильный синтаксис, а в руководстве не указывается вообще.
Любая помощь будет высоко оценена!