2012-03-31 5 views
1

Ich habe eine einfache Dateifreigabe-Anwendung in Java mit TCP-Socket entwickelt. Nun, die Frage ist, wie mache ich diese Anwendung P2P? Kann Distributed Hash Table (DHT) das tun oder gibt es andere Optionen, die ich in meiner Anwendung implementieren kann, um P2P zu machen? Ich habe lange versucht, Ideen dazu zu bekommen, aber ich werde nur noch verwirrter. Bitte helfen Sie.P2P-Dateifreigabe-Anwendung

+0

Könnten Sie bitte den Teil beschreiben, den Sie bereits implementiert haben, damit wir besser erklären können, was fehlt? – Vincent

+0

Ich habe einen Client und einen Server mit TCP-Socket erstellt. Allerdings habe ich Client und Server in einer einzigen Anwendung codiert. Was meine Anwendung jetzt tun kann, ist eine Verbindung zu einem Server herzustellen, nach Dateien in einem Ordner zu suchen (meine App erstellt einen Ordner, in dem Clients nach Dateien suchen können) und wenn eine Übereinstimmung gefunden wird, wird die Datei an den Client übertragen. Im Moment ist die Art meiner Anwendung im Grunde Client/Server und ich habe keine Ahnung, wie man P2P macht. Also, meine Frage ist, kann DHT meine Anwendung P2P machen oder gibt es andere Maßnahmen, die ich implementieren kann? Danke. – philanthropist

+0

Ich habe meine Antwort bearbeitet, um Ihren Kommentar zu reflektieren. – Vincent

Antwort

0

Die Forest platform, die in der frühen Entwicklung ist, zielt auf Anwendungen wie Ihre. Vielleicht möchten Sie es sich ansehen.

Das einzige Problem ist, dass es noch in der Entwicklung ist und noch nicht verwendbar ist. Ich rate dir, es im Auge zu behalten und zu versuchen, es zu benutzen, sobald es seine erste Veröffentlichung erreicht.

EDIT den Kommentar unter Ihre Frage zu beantworten:

Ihre Anwendung die einige Kollegen anschließen müssten. Je nachdem, wie Sie diese auswählen (zufällige Personen oder Kontakte kennen), verwenden Sie jeweils ein Peer-to-Peer-Netzwerk ("P2P") oder ein Freund-zu-Freund-Netzwerk ("f2f").

Forest bietet Anwendungen ein f2f-Netzwerk, aber die Anwendung ist frei, Nachrichten an der Spitze dieses Netzwerks zu routen, um (anonymous) p2p zu erreichen.

Für ein klassisches P2P-Netzwerk müssten Sie einen DHT verbinden, und Sie müssten dazu über einen (oder einige) Server, die am DHT teilnehmen, einen Bootstrap durchführen.

Im Allgemeinen, P2P-Anwendung sind nicht so einfach zu tun, und Sie müssen mit viel mehr Details hier und da beschäftigen. Wenn Sie wirklich mit ihnen experimentieren möchten, können Sie vorhandene DHT-Bibliotheken überprüfen und sehen, wie sie funktionieren. Vielleicht möchten Sie zuerst den Artikel auf Wikipedia about Kademlia lesen, der die Grundlage für die am häufigsten verwendeten DHT-Algorithmen ist.

+0

Vielen Dank. Ich werde es definitiv im Auge behalten. – philanthropist

+0

Wie wird Forest Platform verwendet? Gibt es einen Template Code oder eine Dokumentation davon? –

+0

Die Forest-Plattform ist ein totes Projekt (wurde von mir gemacht). Vergiss es. – Vincent

0

Basierend auf Ihrer Beschreibung klingt es so, als hätten Sie bereits eine einfache P2P-Anwendung erstellt. Wenn Sie nach dem nächsten Schritt suchen, würde ich einen DHT-Server einrichten (bamboo). Ändern Sie als Nächstes Ihre ursprüngliche Anwendung, um eine Liste der verfügbaren Dateien vom DHT zu erhalten, anstatt sich direkt mit den anderen Peers für Dateilisten zu verbinden.

0

Ich entwickle eine einfache P2P-Datei-Sharing-Anwendung in Java, aber ich finde es schwer. Wenn Sie es in Java schreiben. Sie können nach Vuze oder jBittorrent suchen, was Ihnen helfen könnte, es schneller zu entwickeln.