【发布时间】:2011-01-03 14:14:18
【问题描述】:
我需要在两个用户之间建立 P2P UDP 和 TCP 连接。它们都在 NAT 后面。
除了jSTUN 之外,是否有任何 Java 解决方案(库),它似乎只适用于 UDP。 反过来,ICE 对于对称 NAT 问题要好得多。
【问题讨论】:
我需要在两个用户之间建立 P2P UDP 和 TCP 连接。它们都在 NAT 后面。
除了jSTUN 之外,是否有任何 Java 解决方案(库),它似乎只适用于 UDP。 反过来,ICE 对于对称 NAT 问题要好得多。
【问题讨论】:
不要过分吹嘘自己的号角,但我建议您尝试IcedJava。 (它是 SipTools 项目的一部分)它正在积极开发中,有一个稳定的 0.9 版本,并支持开箱即用的 RTP 流等用例。
就 TCP 支持而言,这将在以后的版本中发布,但由于三向握手被阻止,您将很难通过对称 nat 支持 TCP。甚至 ICE 规范的 TCP 扩展也指出,与 natted 对等点之间的 UDP 连接相比,TCP 连接成功的可能性要小得多。
也就是说,您可以通过在 UDP 网桥上路由 TCP 数据包来解决此问题,包括所有纠错和流量控制功能。 (我忘记了 RFC,但它是一个最终规范)不过,所有这些都是相对较新的规范,ICE-TCP 规范还不是最终的。即使在积极开发中,这些也需要时间来实施。
【讨论】:
还有ice4j,据开发者介绍:
STUN 和 TURN 以及 ICE 协议的 Java 实现。该项目是 Stun4J 计划的延续。该项目的目标是为 VoIP Java 开发人员提供一种处理 NAT 和防火墙的方法。
它是由 sipcommunicator 开发者开发的。
【讨论】:
您可以尝试jstunt - 不再维护,但源似乎可用。 他们提供了一个带有 STUNT 库和示例 java 服务器/客户端应用程序的 jar。 根据我的阅读,它不是原生 java,所以这可能只适用于某些架构。
【讨论】: