【问题标题】:Python Client/Server behind the router路由器后面的 Python 客户端/服务器
【发布时间】:2012-01-28 20:54:58
【问题描述】:

我正在寻找有关使用 Python 开发客户端/服务器服务程序的技术(和库)的建议。它可以在静态 IP(没关系)、动态 IP、路由器后面、移动提供商上运行(因此,如果可能,它应该可以在任何地方运行)。端口转发不是一种选择。

主要问题是连接:

  • 发送:从 Internet 到路由器后面的计算机
  • 路由器后面的计算机监听

【问题讨论】:

  • 路由器的存在有什么关系?它应该是透明的,由路由器的IP层处理。将流量路由到网络中正确的端点是路由器的全部意义......
  • 思路清晰,谢谢。我对这个问题并不流利(这就是我问的原因:),但通常你不能只从互联网访问路由器后面的计算机(使用 NAT)。因为,如果它 ping,您只知道由 ISP 提供的公共 IP。如果您想在只有公共 IP 的情况下连接到这台计算机。创建像 100.100.100.100/192.168.1.2(公共 IP/本地 IP)这样的连接会很棒,但我不确定一般情况下是否可行。你怎么看?

标签: python client-server


【解决方案1】:

您的问题并非微不足道,但希望这可以帮助您继续前进。 Twisted 可能是 python 中客户端/服务器代码的最佳库。 STUNTURN 通常是做这类事情的协议。

有一个python library for STUN,虽然我不能保证。

【讨论】:

  • 感谢您的建议,STUN 和 TURN 是找到答案的方法。也有关于我的来自 Yahoo 的问题的精彩演讲,可从 TURN wiki 页面访问。 Twisted 是一个不错的框架,但它似乎不支持在 NAT 后面工作……我不确定,但here smb 回答了这个问题。
【解决方案2】:

STUN有两个版本:RFC3489RFC5389,后者是新版本。 TURN 是“用于 NAT (STUN) 的会话遍历实用程序的中继扩展”,可以在此处找到 RFC5766

STUN 客户端:(RFC4389)pystun(在 python 中)

TURN 客户端:(也支持 STUN RFC5389)turn-client(在 python 和 C 中)

【讨论】:

    【解决方案3】:

    pystun 现在在https://pypi.python.org/pypi/pystun

    你可以用 pip 安装它: pip install pystun

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-21
      • 2015-04-17
      • 2014-05-04
      • 2016-09-24
      相关资源
      最近更新 更多