如何建立一个好的节点/连接网络| Java的

时间:2017-11-25 11:54:14

标签: java networking

我想建立一个彼此连接的客户网络。基本上是一个分散的网络,我不知道该怎么做(他们应该能够相互发送数据)。我尝试了一个SSLServers + Sockets网络,但我不确定它是否适用于密钥库。

所以:

  • 有人建议怎么做吗?
  • 你会推荐什么?

1 个答案:

答案 0 :(得分:0)

我不确定您是否在询问架构或技术,但您可能想看一下:

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

坦率地说,背后的想法是拥有一个注册表节点来维护对等组和网络的其他共享首选项。所有客户端都知道注册表地址(通过默认设置),每个客户端都尝试在启动时连接。在每个客户端连接到注册表后,它会尝试注册自己并获取其他可用客户端的列表。大多数情况下,客户端放松与注册表的连接,只尝试按需(或定期)连接到它们。当一个客户端想要下载某个文件时,它会尝试获取可用资源列表以及共享特定文件的对等方。

由于在这种网络中,每个节点都可以从其他节点获得服务或为其他节点提供服务,因此节点的代码可能同时具有ServerSocketSocket两者来支持这一想法。如果您尝试以本机方式实现它,则应该处理线程以维持对其他客户端的并发服务以及从其他节点获取服务。

在高可用的P2P网络中,有多个注册表节点来维护网络的骨架。此外,每个客户端都可以自愿播放注册表角色,以帮助网络保持可用,即使在默认注册表节点完全失败的情况下也是如此。

这种网络基于共享态度,因此当它发布时它开始日复一日地增长,经过一段时间后你不能通过关闭网络的第一个主要骨架来关闭它。

这只是一个想法,但随着它的发展,您可能希望添加更复杂的功能,以拥有强大且可扩展的网络。

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

希望得到这个帮助。