2010-01-10 88 views
19

我需要在兩個用戶之間建立一個P2P UDP和TCP連接。他們都在NAT後面。STUN,TURN,用於Java的ICE庫

一點點研究導致我STUN,TURNICE

除了jSTUN之外,是否還有Java解決方案(庫),它似乎只適用於UDP。 對於對稱NAT問題,TURN,ICE更好。

回答

2

您可以嘗試jstunt - 不再維護,但源似乎可用。 他們提供了一個STUNT庫和示例java服務器/客戶端應用程序的jar。 從我的閱讀中,它不是原生的java,所以這可能只適用於某些架構。

9

不要太多我自己的號角,但我可以推薦嘗試IcedJava。 (它是SipTools項目的一部分)它正在積極開發之中,具有穩定的0.9版本,並支持開箱即用的RTP流式用例。

就TCP支持而言,這是針對以後的版本,但由於三次握手被阻塞,您將很難在對稱NAT上支持TCP。即使是ICE規範的TCP擴展,TCP連接的成功率也要小於natted對等體之間的UDP連接。

也就是說,您可以通過在UDP網橋上路由TCP數據包來解決此問題,包括所有糾錯和流量控制功能。 (我忘記了這個RFC,但它是一個最終規範)儘管如此,所有這些都是相對較新的規範,並且ICE-TCP規範還沒有最終確定。即使在積極的發展中,這些也需要時間來實施。

+0

嗯鏈接已死...... – goh 2012-08-27 05:38:27

+0

修復了鏈接。 – SplinterReality 2012-10-17 02:01:12

+0

這個項目是否仍然維護?還是它已經停產? – mateuscb 2015-09-16 15:21:50

7

還有ice4j,這acording給開發商:

的Java實現STUN和TURN和ICE協議。該項目是Stun4J倡議的延續。該項目的目標是爲VoIP Java開發人員提供處理NAT和防火牆的手段。

它是由sipcommunicator devs開發的。

+2

請注意缺少Ice4j的文檔 – msj121 2015-04-13 17:40:10