gpt4 book ai didi

objective-c - UDP 不同网络上的两台计算机如何相互连接?

转载 作者:行者123 更新时间:2023-12-03 16:33:55 25 4
gpt4 key购买 nike

位于不同网络上的两台计算机如何使用 UDP 相互连接?我知道您可以通过设置端口转发来做到这一点,但 Xbox Live 等服务无法通过此方式工作。这怎么可能?有没有办法获得单独网络上另一台计算机的地址?

编辑

好的,感谢您的帮助,我正在使用 objc,因此我最终使用 asyncsocket 和 portmapper 来进行路由器配置。

http://code.google.com/p/cocoaasyncsocket/

http://www.codingmonkeys.de/portmap/

最佳答案

首先,获取远程计算机的公网IP:

  • 使用动态 DNS。
  • 制定您自己的协议(protocol)并运行服务器来保存用户和 IP 列表。

计算传入的 UDP 数据包:

  • 使用客户端/服务器通信而不是点对点通信。
  • 使用 UPnP 协议(protocol)(​​我认为 xbox 就是这样做的)向路由器询问端口。并非所有路由器都支持或启用 UPnP。
  • 使用 TURN/STUN 协议(protocol)。该协议(protocol)旨在绕过 UDP nat。这需要外部服务器,但有免费服务器可用。

我认为有 UPnP 和 STUN 的库,但我不能确定地告诉你。

关于objective-c - UDP 不同网络上的两台计算机如何相互连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3672239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com