UDP 不同网络上的两台计算机如何相互连接?
位于不同网络上的两台计算机如何使用 UDP 相互连接?我知道您可以通过设置端口转发来做到这一点,但 Xbox Live 等服务无法通过此方式工作。这怎么可能?有没有办法获得单独网络上另一台计算机的地址?
编辑
好的,感谢您的帮助,我正在使用 objc,所以我最终使用 asyncsocket 和 portmapper 来进行路由器配置。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
首先,获取远程计算机的公网IP:
计算传入的 UDP 数据包:
我认为有 UPnP 和 STUN 的库,但我不能确定地告诉你。
First, obtaining the public IP of a remote computer:
Working out incoming UDP packets:
I think there are libraries for UPnP and STUN, but i can't tell you for sure.
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