【问题标题】:Client/Server role reversal with SimpleXMLRPCServer in Python在 Python 中使用 SimpleXMLRPCServer 进行客户端/服务器角色反转
【发布时间】:2015-03-25 17:41:49
【问题描述】:

我正在开展一个项目,以将一组方法从各种客户端机器公开到服务器,以实现信息收集和自动化。我目前正在使用 Python,SimpleXMLRPCServer 似乎在本地网络上运行良好,我知道客户端机器的地址,并且没有 NAT 或防火墙。

问题是客户端/服务器模型对于我想要做的事情是倒退的。我不想让 RPC 服务器在客户端计算机上运行,​​向软件客户端公开服务,而是让服务器监听来自客户端的连接,客户端连接并将服务公开给服务器。

我曾考虑过隧道、使用 SSH 的远程端口转发或 VPN,但这些选项不能很好地扩展,并且会引入比我想要的更多的开销和复杂性。

我想我可以编写一个服务器和客户端来反转模型,但如果它已经存在,我不想重新发明轮子。在我看来,这将是一个足够普遍的问题,已经有解决方案了。

我也刚开始学习 Python 和网络服务,所以我可能完全问错了问题。

【问题讨论】:

    标签: python sockets service client-server rpc


    【解决方案1】:

    你想要的可能是WAMP routed RPC。 好像解决了你的问题,习惯了就很方便了。

    这个想法是将 WAMP 路由器(比方说)放在云端,RPC 调用者和 RPC 被调用者都是与路由器有出站连接的客户端。

    我还使用 VPN 将物联网设备通过互联网连接在一起,但切换到这种路由器模型确实简化了事情并且它的扩展性很好。

    顺便说一句,WAMP 是在 different languages 中实现的,包括 Python。

    【讨论】:

      【解决方案2】:

      也许Pyro 可以使用?它允许在 Python 中进行多种形式的分布式计算。您的要求不是很清楚,因此很难说这是否适合您,但我建议您查看文档或 Pyro 的许多示例,看看是否有与您想要做的匹配的东西.

      Pyro 将大部分网络复杂性抽象出来,您只需在(远程)python 对象上调用一个方法。

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 2011-01-08
        • 2019-01-03
        • 2014-11-26
        • 2022-01-28
        • 1970-01-01
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多