【发布时间】:2014-05-05 17:41:59
【问题描述】:
正如here 解释的那样,使用 RPyC 2 重定向 stdio/stdin 非常简单。这意味着在服务器中执行的“打印”命令将在客户端显示打印的字符串。
如here 所述,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()
我的目标是在客户端的标准输出中每秒获取时间(或我想打印的任何其他内容),但客户端只是挂起,时间只打印在服务器中。
【问题讨论】:
-
你看过教程吗?它奏效了吗?如果没有,是哪里出了问题或你不明白什么?
-
@Jan Vlcinsky 我浏览了教程并且一切正常,但他们没有解释如何将输出重定向到客户端。完成教程并在服务器上打印后,打印输出仅显示在服务器中,我希望它显示在客户端中
-
如果您显示一些代码会很棒。您想在客户端上执行某些操作并看到它打印在服务器上吗?有人有机会看到这样的打印输出吗?或者您希望服务器通过某些操作对其做出反应?什么动作?
-
@JanVlcinsky 我已将服务器代码编辑到我的帖子中
-
改成
print conn.root.get_time()不是更简单吗?
标签: python printing client-server rpyc