使用java的Peer-to-Peer应用程序

时间:2015-11-28 14:15:22

标签: java sockets networking netbeans p2p

我想使用java和netbeans IDE开发一个p2p应用程序。在我的应用程序中,我想做两件事

  • 用户之间的文件共享
  • 用户之间的聊天 我从不同的资源中读到了

Introduction to the Peer-to-Peer Sockets Project

Peer-to-Peer File Sharing

问题是我如何能够连接两台或多台连接到不同网络的电脑。显示所有连接的对等体,在大小限制下的任何类型的文件共享。任何帮助将不胜感激。

2 个答案:

答案 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。