0

正如这里所解释的,使用 RPyC 2 重定向 stdio/stdin 非常简单。这意味着在服务器中执行的“打印”命令将在客户端显示打印的字符串。

如此处所述,RPyC 2不安全且不推荐使用,但我无法在任何地方找到如何使用 RPyC 3 在客户端进行打印。

有谁知道如何实现这一目标?

编辑:

例如,这是我的服务器的代码:

import rpyc
import time
from rpyc.utils.server import ThreadedServer

class TimeService(rpyc.Service):
    def exposed_print_time(self):
        for i in xrange(10):
            print time.ctime()
            time.sleep(1)

if __name__ == "__main__":
    t = ThreadedServer(TimeService, port=8000)
    t.start()

在我的客户中,我运行:

conn = rpyc.connect("192.168.1.5")
conn.root.print_time()

我的目标是在客户端的标准输出中每秒获取时间(或我想打印的任何其他内容),但客户端只是挂起,时间只打印在服务器中。

4

1 回答 1

0

您可以在服务器端使用 return :

#on server
def exposed_test(self):
   return "this is test"

#on client
conn.root.test()
>>> 'this is test'
于 2021-10-09T17:43:03.803 回答