如何在使用RPyC服务时将标准输出重定向到本地客户端?我知道当使用经典RPyC时,可以使用
c = rpyc.classic.connect(ip)
c.modules.sys.stdout = sys.stdout是否有人可以在我的客户端为用户定义的服务(如下面的服务)使用等效代码?
class remoteServer(rpyc.Service):
def on_connect(self):
# code that runs when a connection is created
# (to init the serivce, if needed)
if not os.path.exists(self.LOG_DIRECTORY_PATH):
os.mkdir(self.LOG_DIRECTORY_PATH);
file = open(self.LOG_FILENAME, 'a');
else:
print 'Directory: ', self.LOG_DIRECTORY_PATH, 'already exists';
if __name__ == "__main__":
server = ThreadedServer(remoteServer, port = 12345)
server.start()发布于 2014-07-26 11:27:21
我会用
class RedirectingService(rpyc.Service):
def exposed_redirect(self, stdout):
sys.stdout = stdout
def exposed_restore(self):
sys.stdout = sys.__stdout__然后
c = rpyc.connect("server", config={"allow_public_attrs":True})
c.redirect(sys.stdout)
...
c.restore()查看配置选项的CONFIG。经典模式基本上将一切设置为True,这可能是不安全的,但您可以控制您希望显式设置的选项。
https://stackoverflow.com/questions/23892351
复制相似问题