问题标签 [rpyc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1638 浏览

python - 通过 rpyc.Connection 检测停止的服务器进程

假设我有一个服务:

现在我开始在 ThreadedServer 中运行该服务:

现在在同一台机器上的不同进程中,我打开一个到服务器的新连接:

...但在访问连接的根之前,服务器进程由于某种原因停止,例如在服务器进程的控制终端中按Ctrl-Z。现在,当我尝试通过以下方式访问根目录时:

... Python挂起。客户端的 Ctrl-C 显示如下:

因此,如果服务器进程已停止但仍处于连接状态(底层套接字仍处于打开状态),则对Stream.poll的调用似乎会以无限循环结束。我认为这是 Stream 实现中的意外情况是否正确?我使用的是 3.3.0 版。我怎样才能检测到这种情况并避免客户端挂起?

0 投票
0 回答
762 浏览

multithreading - Rpyc Python:Rpyc 服务线程启动调用被阻塞

服务器启动正常,我可以更新值,但不打印 hello world 字符串。程序卡在 t.start() 处,我怎样才能使它成为非阻塞的。

0 投票
0 回答
98 浏览

python - Python 服务类似于 rpyc.Service 但仅限本地

一个很幼稚的问题...

我需要有一个中央 Python 程序为其他 Python 应用程序(都在同一台机器上运行)提供服务。对我来说最简单的是其他应用程序可以直接调用服务器提供的功能。我知道rpyc(远程 Python 调用)并且rpyc.Service该类可以完成这项工作(就像在本教程中一样)但我不想要任何“远程”(所有客户端都必须是本地的,与服务器在同一台机器上运行)所以我想知道是否有比使用 rpyc 更好的方法来做到这一点?

0 投票
1 回答
169 浏览

python - python RPyC 用户数

我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足单个用户的需求。有什么办法可以让 RPyC 强制一次只有一个用户可以访问?

0 投票
1 回答
650 浏览

python - 使用 rpyc 更新远程对象的属性

我在应用程序中使用 rpyc 并遇到了一个小问题。

我只想知道是否可以更新远程属性?

我有一个测试服务器:

在 ipython 控制台中:

是否可以更新远程属性?

0 投票
1 回答
647 浏览

python - 通过 RPyC 添加自定义模块

我正在尝试将新模块添加到连接中。

我有以下文件: main.py UpdateDB.py

在更新数据库中:

在 main.py 中:

我可以弄清楚如何调用 UpdateDB() 函数。我得到:

也许我试图做错了。所以让我解释一下我想要做什么:我想创建一个到服务器的连接并在其上运行 UpdateDB.py 文件中的一个函数。

0 投票
0 回答
176 浏览

python - Rpyc:一个客户端到多个服务器

如何将同一个客户端连接到多个服务器?

我试过了:

但是,当我执行 async_result0/1.wait() 时,实际上只完成了后者。

0 投票
2 回答
1713 浏览

python - 在 python 解释器中挂钩全局名称查找

事情是这样的,我有一个代理持有对远程模块的引用,我将其中的一些代理放在sys.modules这样我可以像本地模块一样使用它的地方。但是其他一些对象被放在__builtin__远程环境的模块中(例如为了方便调试或引用的魔术变量)。我不想像这样引用这些变量conn.__builtin__.var,并且我必须替换本地__builtin__(这似乎不适用于替换sys.modules['__builtin__']或挂钩全局名称查找规则。如何?对于一个模块,您可以重载 agetattr来执行此操作。但是在像这样的交互式解释器中IPython,谁是主要模块或如何做到这一点? 更新:正如@Nizam Mohamed 所指出的,是的,我可以得到__main__模块,但我仍然无法修改它的名称查找角色。

我想将本地环境完全变成远程环境(用于调试控制台)

更新

现在我只是迭代所有的__builtin__.__dict__,如果有一个名字不在 local 中__builtin__。我将名称添加到本地的__builtin__. 但与名称查找规则相比,它并不是那么动态,如果我在本地找不到名称,请__builtin__尝试远程名称。

是一个类似的讨论。

这个问题通过将其替换为sys.modules. 但这不适用于__builtin__名称查找,我还尝试将其替换__builtin__.__getattribute__为自定义名称,该自定义名称将首先使用原始查找,然后在失败时使用自定义查找。__builtin__但是从不调用的全局名称查找__builtin__.__getattribute__甚至__builtin__.__getattribute__('name')返回所需的值,__builtin__.name或者name从不返回一个。

0 投票
1 回答
256 浏览

python - 通过 RPyC 使用 scapy

我需要在远程服务器上使用 scapy 来转储这样的流量

要连接到远程服务器,我正在使用 RPyC。

但我不明白如何在远程服务器上使用 scapy。如何通过 RPyC 在远程服务器上调用嗅探功能?

这个问题可能被认为更广泛 - 如何在远程机器上导入模块并使用它的功能?

0 投票
0 回答
263 浏览

python - 使用 paramiko 重启 rpyc

我需要使用 paramiko 在远程机器上重新启动 rpyc。我试过做:

我看到 rpyc 实际上已被杀死,但它没有再次启动......我做错了什么?