2013-08-25 33 views
1

我打算使用STUN作为我的遍历NAT解决方案,并且遇到了JSTUN。虽然我已搜查以防万一计算器,我发现提到JSTUN这个帖子有其源内部文档:Java and Which Stun libraries i should use?有没有人有JSTUN文档或帮助解释更多?

然而,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 

问候,

史蒂夫

回答

0

这是我的NAT穿越的理解:

你有你的外部 “广域网” 的IP地址(WAN),你会发现在这里:http://www.mywanip.com/。该IP通过路由器暴露于互联网。 您还有一个内部IP地址,它受到路由器的保护。它可能会读取192.168.x.x.

0

DiscoveryTestDemo将返回您的公共IP和公共端口,如您提供的stun服务器所示,并且还会告诉您您所在的路由器是什么类型。 (这是什么STUN是)

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

+1

down-vote for what? – Dexter