用于Java的STUN,TURN,ICE库

Hem*_*roc 21 java nat stun turn

我需要在两个用户之间建立P2P UDP和TCP连接.他们都是NAT的背后.

一点研究让我想到了STUN,TURNICE.

除了jSTUN之外是否有任何Java解决方案(库),它似乎只能在UDP上运行.而TURN,ICE对于对称NAT问题要好得多.

Spl*_*ity 9

不要过多地我自己的号角,但我可能会建议尝试IcedJava.(它是SipTools项目的一部分)它正在积极开发,具有稳定版本0.9版本,并支持RTP流式开箱即用的用例.

至于TCP支持,这是为了以后的版本,但是由于三次握手被阻止,你将很难支持TCP超过对称nat.即使是ICE规范的TCP扩展,也注意到TCP连接成功的可能性要小于自然对等体之间的UDP连接.

也就是说,您可以通过在UDP网桥上路由TCP数据包来解决此问题,包括所有纠错和流量控制功能.(我忘记了RFC,但它是最终的规范)但是,所有这些都是相对较新的规范,而ICE-TCP规范还不是最终的.即使在积极开发中,这些也需要时间来实施.


Pau*_*lgo 7

还有ice4j,根据开发人员的说法:

STUN和TURN和ICE协议的Java实现.该项目是Stun4J计划的延续.该项目的目标是为VoIP Java开发人员提供处理NAT和防火墙的方法.

它是由sipcommunicator devs开发的.

  • 注意缺少Ice4j的文档 (2认同)

Joh*_*ohn 2

您可以尝试jstunt - 不再维护,但源代码似乎可用。他们提供了一个带有 STUNT 库的 jar 和示例 java 服务器/客户端应用程序。根据我的阅读,它不是本机 java,因此这可能仅适用于某些体系结构。