访问UDP端口而不进行端口转发

时间:2014-03-18 15:27:15

标签: udp port

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

1 个答案:

答案 0 :(得分:0)

这是一个复杂的问题,特别是如果双方都在路由器/防火墙后面。寻找STUN和TURN或者进入RFC for ICE(RFC5254),这就是通常的SIP客户端如何做到这一点。可能至少有一个库可以帮助你解决这个问题。