2011-06-30 25 views
1

對於文件共享應用程序,我想使用TCP/IP套接字。但是這不起作用,因爲兩個客戶都在NAT後面。因此我必須使用UDP和打孔方法。使用UDP(Datagrams)的Java中的TCP實現

由於UDP不可靠,我必須實現類TCP協議。我不需要流。基於消息的協議是可以的。有沒有免費的Java庫?如果沒有,是否有一個抽象的教程,如何實現這樣的協議?

+0

。我不知道是否有任何Java實現,但協議應該很容易獲得(不知道是否難以實現)。 – SJuan76

回答

1

您可以實施TCP孔允許兩個對等端在防火牆後面通信的衝孔。 首先通過這個環節去
http://www.brynosaurus.com/pub/net/p2pnat/

,然後更新的問題,如果需要對this.But與TCP打孔的問題是,它可以成功地在市場上,而UDP孔可利用的路由器的60%進一步幫助衝壓成功80-90%。

退房此鏈接爲well.http:這(TCP在UDP)的OpenVPN是做什麼//stackoverflow.com/questions/917385/nat-traversal-with-java

0

它對您有幫助嗎?

http://www.syslog4j.org/

+0

不是真的。已經查看了UDPNetSyslog類。但它只是用UDP發送消息。但沒有任何TCP。如果消息在途中丟失,沒有人會注意到這一點。我有看過錯課嗎? – Witek

1

如果你搜索一個基於UDP的面向消息的協議,我會考慮TeleHash。也有Java庫可用。

如果您依賴大量的二進制數據進行傳輸,也許這是錯誤的選擇,但基於流的協議無論如何都可能是更好的選擇。