2017-11-25 205 views
-2

我想建立一个彼此连接的客户端网络。基本上是一个分散的网络,我不知道该怎么做(他们应该能够将数据发送给对方)。我尝试了SSLServers + Sockets的网络,但我不确定它是否适用于密钥库。如何建立一个好的节点/连接网络| Java

所以:

  • 有没有人建议如何做到这一点?
  • 你会推荐什么?

回答

0

我不知道,如果你问的是建筑或技术,但你可能想看看这个:

据我所知,这种网络的分散的形式被称为点对点网络或P2P。

坦白说,背后的想法是有一个注册表节点来维护网络的对等组和其他共享首选项。所有客户端都知道注册表地址(通过默认设置),每个客户端都尝试在启动时连接到该地址。每个客户端连接到注册表后,它会尝试注册自己并获取其他可用客户端的列表。大多数时候,客户端放松与注册中心的连接,只尝试按需(或定期)连接它们。当一个客户想要下载某个文件时,它会尝试获取可用资源的列表以及共享特定文件的同伴。由于在这种类型的网络中,每个节点可以从另一个节点获得服务或服务于其他节点,因此您的节点代码可能同时具有ServerSocketSocket以支持该想法。如果你尝试以本地方式实现它,你应该处理线程来维护其他客户端的并发服务并从其他节点获取服务。

在高可用P2P网络中,有多个注册表节点来维护网络的骨架。此外,每个客户都可以自愿扮演注册管理机构角色,以帮助网络保持可用,即使在默认注册节点发生完全故障时也是如此。

这种类型的网络基于共享的态度,因此当它启动时,它开始日益增长,经过一段时间后,您不能简单地通过关闭网络的第一个主要骨架来关闭它。

这只是一个开始的想法,但随着它的发展,您可能需要添加更复杂的功能以建立强大的可扩展网络。

这里是实现这种网络的一个很好的教程: https://www.javaworld.com/article/2071877/enterprise-java/peer-to-peer-applications-made-easy.html

希望这有助于。

相关问题