【问题标题】:How do I communicate between 2 Python programs using sockets that are on separate NATs?如何使用位于不同 NAT 上的套接字在 2 个 Python 程序之间进行通信?
【发布时间】:2012-08-17 23:03:05
【问题描述】:

我想使用套接字在两个 Python 程序之间发送和接收消息。当计算机连接到同一个路由器时,我可以使用私有 IP 来执行此操作,但是当有 2 个 NAT 将它们分开时,我该怎么做?

谢谢(我的第一个 SO 问题)

【问题讨论】:

  • 这是客户端-服务器还是点对点?
  • 它是你要找的一种后门吗?试试 pwnat(C 代码,但你可以轻松地与你的 python 程序集成,因为它是在你的操作系统中编译的)---> samy.pl/pwnat
  • 点对点的去中心化 2 人游戏。只是在寻找不需要设置的东西,玩家可以输入他们想要玩的 ip 并且代码会处理它。不想在 NAT 表中使用服务器或设置端口转发。

标签: python sockets nat


【解决方案1】:

如果没有公共可寻址 IP 地址上的中继服务器,您通常无法做到这一点。有所谓的“穿透”技术,在某些情况下,可以让您在使用公共服务器找出端口映射后切换到直接连接 - this article 描述了 RakNet 游戏网络库是如何做到的 - 但即使是这些往往是挑剔和不可靠的。

【讨论】:

    【解决方案2】:

    Zeromq,是要走的路。它非常快速且非常容易。 http://www.zeromq.org/

    【讨论】:

      【解决方案3】:

      Redis,可以工作,但功能不完全相同。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-10-10
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        相关资源
        最近更新 更多