2012-03-31 259 views
1

我開發了一個簡單的文件共享應用程序在java中使用TCP套接字。現在,問題是我如何使這個應用程序的P2P?分佈式哈希表(DHT)可以做到這一點,或者我可以在我的應用程序中實現其他選項以使其成爲P2P?我一直試圖在這個問題上得到很長時間的想法,但我只是變得更加困惑。請幫忙。P2P文件共享應用程序

+0

請您介紹一下您已經實施的部分,那麼我們可以更好地解釋缺失的部分嗎? – Vincent 2012-04-01 04:12:41

+0

我已經創建了一個使用TCP套接字的客戶端和服務器。但是,我已經在單個應用程序中編寫了客戶端和服務器。現在我的應用程序可以做的是連接到服務器,搜索文件夾中的文件(我的應用程序創建一個文件夾,客戶端可以在其中查找他們想要的文件),如果找到任何匹配項,文件將傳輸到客戶端。現在我的應用程序的性質基本上是客戶端/服務器,我不知道如何使它成爲P2P。所以,我的問題是,DHT可以讓我的應用程序是P2P還是還有其他措施可以實現? 謝謝。 – philanthropist 2012-04-01 12:07:14

+0

我編輯了我的答案以反映您的評論。 – Vincent 2012-04-01 17:06:00

回答

0

Forest platform這是在早期的發展是針對像你的應用程序。你可能想看看它。

唯一的問題是,它仍在開發中,並且尚未可用。我建議你留意它,並嘗試在它首次發佈時使用它。

編輯回答評論你的問題下:

您的應用程序將需要連接的一些同行。根據你選擇他們的方式(隨機的人或知道聯繫人),你分別使用一個對等('p2p')網絡或一個朋友對朋友('f2f')網絡。

森林正在爲應用程序提供一個f2f網絡,但應用程序可以自由地在該網絡頂部路由消息以實現(匿名)p2p。

對於傳統的p2p網絡,您需要連接一個DHT,並且您需要通過參與DHT的(或某些)服務器引導它。

一般來說,p2p應用程序並不是那麼簡單,你需要在這裏和那裏處理更多的細節。如果你真的想試驗它們,你可以去檢查現有的DHT庫,看看它們是如何工作的。您可能首先想要閱讀關於Wikipedia about Kademlia的文章,它是最常用的DHT算法的基礎。

+0

非常感謝。我一定會密切關注它。 – philanthropist 2012-04-01 12:06:03

+0

如何使用Forest Platform? 是否有任何模板代碼或文檔? – 2017-04-30 11:16:59

+0

森林平臺是一個死亡項目(由我製作)。忘掉它。 – Vincent 2017-05-01 03:56:40

0

根據你的描述,聽起來你已經創建了一個簡單的P2P應用程序。如果您正在尋找下一步,我會設置一個DHT服務器(bamboo)。接下來,修改您的原始應用程序以從DHT獲取可用文件的列表,而不是直接連接到其他節點以獲取文件列表。

0

我在java中開發了一個簡單的P2P文件共享應用程序,但我覺得很難。如果你用java編寫它。您可以搜索Vuze或jBittorrent,這可能會幫助您更快地開發它。

相關問題