2008-08-22 7 views
1

Nachdem ich ein bisschen mehr darüber gelesen habe, wie Gnutella und andere P2P-Netzwerke funktionieren, wollte ich mein eigenes Peer-to-Peer-System starten. Ich ging davon aus, dass ich viele Tutorials und sprachunabhängige Richtlinien finden würde, die angewandt werden könnten, aber ich wurde mit einem vagen vereinfachenden Überblick konfrontiert.Warum ist Peer-to-Peer-Programmierung ein schweres Thema, um gute Forschungsergebnisse zu erhalten?

Ich konnte nur sehr kleinen, präzisen P2P-Code finden, der nicht viel mehr als Client/Server-Architektur für alle Benutzer verwendet, was nicht wirklich das war, was ich suchte. Ich wollte etwas wie Gnutella, aber es scheint keine offenen Artikel für den Beitritt zum Netzwerk zu geben.

Antwort

1

Ich musste einen grundlegenden Gnutella-Client in C# mit Web-Services schreiben und ich denke, die Klassenhinweise auf dem P2P-Zeug sind noch verfügbar here und here.

1

Ich habe die TheoryOrg Unofficial BitTorrent Specification als die beste Online-Quelle für Bittorrent-Informationen gefunden. Außerdem ist der Code von Monotorrent ziemlich einfach und leicht zu verstehen. Es gibt auch ein Projekt namens "GCT", das JGroups-Stil P2P für LAN/Multicast-Umgebungen implementiert, und sein Code ist ähnlich einfach zu verstehen (wenn ein bisschen buggy).

1

Sie können versuchen, Gnutella2 lesen und versuchen, Messaging zu implementieren. Zum Lesen von Konzeptmaterial können Sie Distributed Systems von Andrew Tannenbaum lesen.

1

Sie können sich JXTA ansehen. Es sollte ein generisches, plattformunabhängiges P2P-Framework sein, im Gegensatz zu anderen P2P-Implementierungen, die normalerweise für einen ganz bestimmten Zweck (wie Gnutella) gedacht sind.

Lassen Sie sich nicht durch Java täuschen, es gibt eine Bindung für C/C++/C#, aber die Kernprotokolle sind in XML implementiert, das in jede Sprache übersetzt werden sollte. Sie können auch ein kostenloses Buch here herunterladen.

2

RFC 4981, mit seiner riesigen Bibliographie, könnte ein sehr guter Ausgangspunkt sein.

Verwandte Themen