有没有人有JSTUN文档或帮助解释更多?

时间:2013-08-25 07:18:34

标签: java stun

我将使用STUN作为我的遍历NAT解决方案,并遇到JSTUN。虽然我搜索了arround stackoverflow,但我发现这篇文章提到JSTUN在源代码中有其文档:Java and Which Stun libraries i should use?

然而,http://javawi.de/上的来源被打破,然后我找到了下载JSTUN代码https://github.com/tking/JSTUN的替代方法

所以我在这里要求提供文件,如果有人愿意给我,并想知道它是如何运作的:

1.de.javawi.jstun.test.demo.StunServer要求我提供2个ip和端口。在我看来,STUN服务器是一种提供“打孔”服务的方式,为什么需要2个ip和端口?

2.运行de.javawi.jstun.test.demo.DiscoveryTestDemo后,它会返回ip,这是什么意思?

No route to host
java.io.IOException: No route to host
No route to host
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:625)
    at de.javawi.jstun.test.DiscoveryTest.test1(DiscoveryTest.java:96)
    at de.javawi.jstun.test.DiscoveryTest.test(DiscoveryTest.java:64)
    at de.javawi.jstun.test.demo.DiscoveryTestDemo.run(DiscoveryTestDemo.java:48)
    at java.lang.Thread.run(Thread.java:680)
java.io.IOException: No route to host
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:625)
    at de.javawi.jstun.test.DiscoveryTest.test1(DiscoveryTest.java:96)
    at de.javawi.jstun.test.DiscoveryTest.test(DiscoveryTest.java:64)
    at de.javawi.jstun.test.demo.DiscoveryTestDemo.run(DiscoveryTestDemo.java:48)
    at java.lang.Thread.run(Thread.java:680)
Network interface: en0
Local IP address: 192.168.1.23
Result: Port restricted Cone NAT handles connections.
Public IP address: 116.48.14.100

此致

史蒂夫

2 个答案:

答案 0 :(得分:0)

这是我对NAT遍历的理解:

您拥有外部“广域网”IP地址(WAN),您可以在此处找到:http://www.mywanip.com/。此IP由路由器暴露给互联网。 您还有一个内部IP地址,受路由器保护。它可能会读取192.168.x.x。

答案 1 :(得分:0)

DiscoveryTestDemo,返回您的公共IP和公共端口,如您提供的击晕服务器所示,还可以告诉您背后的路由器类型。 (这是STUN的用途)

对于打孔,您必须编写自己的代码。 UDP打孔很容易,您可以轻松找到它的资源。 这是TCP打孔的一个很好的链接: http://ramonli.blogspot.in/2012/03/tcp-hole-punching-how-to-establish-tcp.html