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

发布于 2024-09-18 07:37:15 字数 450 浏览 6 评论 0原文

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

编辑

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

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

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

How can two computers that are on separate networks connect to each other using UDP? I know that you can do this by setting up port forwarding but I services like Xbox Live don't work through that. How is this possible and is there a way to obtain an address to another computer on a separate network?

EDIT

Ok thanks for the help I am using objc so I ended up using asyncsocket and portmapper for doing router configuration.

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天气好吗我好吗 2024-09-25 07:37:15

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

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

计算传入的 UDP 数据包:

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

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

First, obtaining the public IP of a remote computer:

  • Use dynamic dns.
  • Make your own protocol and run a server to keep the list of users and IP.

Working out incoming UDP packets:

  • Use client/server communication instead of peer-to-peer.
  • Use UPnP protocol (i think xbox does this) to ask your router for a port. Not all routers support or have UPnP enabled.
  • Use TURN/STUN protocol. This protocol has been designed to bypass UDP nat. This requires an external server, but there are free servers available.

I think there are libraries for UPnP and STUN, but i can't tell you for sure.

醉生梦死 2024-09-25 07:37:15

LatinSuD 是对的,STUN 是一个很好的解决方案 - 查看 iOS 的 STUN 协议实现 https: //github.com/soulfly/STUN-iOS

LatinSuD are right, STUN is good solution - check out STUN protocol implementation for iOS https://github.com/soulfly/STUN-iOS

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文