我想使用java和netbeans IDE开发一个p2p应用程序。在我的应用程序中,我想做两件事
Introduction to the Peer-to-Peer Sockets Project
问题是我如何能够连接两台或多台连接到不同网络的电脑。显示所有连接的对等体,在大小限制下的任何类型的文件共享。任何帮助将不胜感激。
答案 0 :(得分:2)
这些问题正在处理最着名的NAT遍历问题,处理NAT遍历与您使用的语言无关,而与其基本问题领域有关。首先,你需要使用一些信令方法(即SIP,Jingle ......)来宣传你们两端的地址。现在,如果您尝试连接位于同一网络或NAT后面的两个端点,那么只需知道或通告本地主机候选人就可以完成这项任务,但是如果您的任何终点位于网络的一侧或两个端点之间有NAT然后你需要使用STUN / TURN / ICE等协议遍历NAT。根据您的使用案例,您可能有兴趣阅读RFC-5389,RFC-5245和RFC-5766等RFC。一旦你知道你需要什么,你可以通过谷歌获得任何开源解决方案,或者如果你有足够的好奇心,你可以开始实施基于RFC的解决方案。因此NAT遍历或STUN / TURN / ICE等关键字可能会帮助您首先了解您的问题,一旦您知道您的问题域,就可以找到解决方案。
答案 1 :(得分:0)
现在,如果您要连接位于同一网络或NAT后面的两个端点,则只需知道或通告本地主机候选者就可以完成工作,但是如果您的任何端点位于网络之外或具有NAT,在两个端点之间,那么您需要使用诸如STUN / TURN / ICE之类的协议遍历NAT。