2014-10-01 10 views
0

Обзор высокого уровня: У меня есть файл server.py и класс WorkTask.py, который имеет в нем некоторую функцию execute, хранящуюся на моем сервере. У меня также есть client.py, который работает удаленно и подключается к серверу с помощью pyro. Есть ли в любом случае, что я могу передать класс WorkTask с сервера на клиент, а затем запустить функцию WorkTask.execute() на стороне клиента?Pyro: Можно ли передать класс с сервера клиенту, а затем создать экземпляр этого класса на стороне клиента?

+0

Вы хотите, чтобы центральный процессор клиента запускал «WorkTask.execute()», или вы хотите, чтобы процессор сервера выполнял его, а просто выполнил его клиент? –

ответ

1

Только если у вас уже есть экземпляр WorkTask.py на клиенте и используется сериализатор рассола.

Вы также можете посмотреть Pyro4.utils.flame.createModule(). См. https://pythonhosted.org/Pyro4/flame.html

Это большой риск для безопасности, хотя, поскольку использование pickle позволяет выполнять произвольное выполнение кода, если вы подключаетесь к ненадежной удаленной стороне.