【问题标题】:access UDP port without doing port forwading不做端口转发就访问UDP端口
【发布时间】:2014-03-18 15:27:14
【问题描述】:

我开发了一个带有语音通话的聊天应用程序。如果语音呼叫在本地连接(使用本地 IP 地址),则可以正常工作。但是,当我通过 Internet 测试它(使用外部/公共 IP 地址)时,它可以发送数据包但无法接收数据包。数据包是通过 UDP 发送的。我能够通过端口转发来解决这个问题。我们即将将 apk 分发给几个人来测试应用程序,我不想要求他们每个人都进行端口转发只是为了使语音通话正常工作。现在我的问题是,我的程序如何在不进行端口转发的情况下访问 UDP 端口(只要它可以工作的任何 UDP 端口)?就像 Viber 或我使用的任何其他程序一样,我没有打开路由器上的任何端口。它会自动工作。我怎样才能做到这一点?有我需要执行的代码吗?还是我必须注册我的申请?请帮忙。谢谢。

【问题讨论】:

    标签: udp port


    【解决方案1】:

    这是一个复杂的问题,尤其是当双方都在路由器/防火墙后面时。查找 STUN 和 TURN 或进入 RFC for ICE (RFC5254),这就是通常的 SIP 客户端的操作方式。可能至少有一个库可以帮助您解决这些问题。

    【讨论】:

    • 请提供更多详细信息,例如链接。我只是一个试图完成我的论文的学生,我不知道去哪里找什么。我已经搜索了几个星期,但我自己仍然无法弄清楚。
    • 请在线搜索 STUN、TURN、ICE 和 RFC5254。还有关于该主题的维基百科文章。
    • 我已经阅读了有关 UDP 打孔的信息,我将在明天对其进行测试。尽管我想澄清一下,但我确实还有其他问题。我是否必须向 IANA 注册我将使用的 UDP 端口?如果是,为什么?如果它被注册会发生什么?这会自动取消阻止我的应用程序使用 UDP 端口吗?我可以使用类似开放的 UDP 端口吗?我在他的互联网上搜索过,但我找不到我的问题的答案。
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多