2017-11-25 202 views
-2

我想建立一個彼此連接的客戶端網絡。基本上是一個分散的網絡,我不知道該怎麼做(他們應該能夠將數據發送給對方)。我嘗試了SSLServers + Sockets的網絡,但我不確定它是否適用於密鑰庫。如何建立一個好的節點/連接網絡| Java

所以:

  • 有沒有人建議如何做到這一點?
  • 你會推薦什麼?

回答

0

我不知道,如果你問的是建築或技術,但你可能想看看這個:

據我所知,這種網絡的分散的形式被稱爲點對點網絡或P2P。

坦白說,背後的想法是有一個註冊表節點來維護網絡的對等組和其他共享首選項。所有客戶端都知道註冊表地址(通過默認設置),每個客戶端都嘗試在啓動時連接到該地址。每個客戶端連接到註冊表後,它會嘗試註冊自己並獲取其他可用客戶端的列表。大多數時候,客戶端放鬆與註冊中心的連接,只嘗試按需(或定期)連接它們。當一個客戶想要下載某個文件時,它會嘗試獲取可用資源的列表以及共享特定文件的同伴。由於在這種類型的網絡中,每個節點可以從另一個節點獲得服務或服務於其他節點,因此您的節點代碼可能同時具有ServerSocketSocket以支持該想法。如果你嘗試以本地方式實現它,你應該處理線程來維護其他客戶端的併發服務並從其他節點獲取服務。

在高可用P2P網絡中,有多個註冊表節點來維護網絡的骨架。此外,每個客戶都可以自願扮演註冊管理機構角色,以幫助網絡保持可用,即使在默認註冊節點發生完全故障時也是如此。

這種類型的網絡基於共享的態度,因此當它啓動時,它開始日益增長,經過一段時間後,您不能簡單地通過關閉網絡的第一個主要骨架來關閉它。

這只是一個開始的想法,但隨着它的發展,您可能需要添加更復雜的功能以建立強大的可擴展網絡。

這裏是實現這種網絡的一個很好的教程: https://www.javaworld.com/article/2071877/enterprise-java/peer-to-peer-applications-made-easy.html

希望這有助於。

相關問題