Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在不使用经典RPyC的情况下将RPyC的标准输出重定向到本地客户端_Python_Stdout_Io Redirection_Rpyc - Fatal编程技术网

Python 在不使用经典RPyC的情况下将RPyC的标准输出重定向到本地客户端

Python 在不使用经典RPyC的情况下将RPyC的标准输出重定向到本地客户端,python,stdout,io-redirection,rpyc,Python,Stdout,Io Redirection,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

使用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()
我愿意和你一起做

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

查看配置选项。经典模式基本上将所有内容都设置为True,这可能不安全,但您可以控制要显式设置的选项。

所以您只需要支持连接单个客户端?太好了!我正在学习rypc。除了官方网站,我在哪里可以找到更多的样品