Eine P2P-Anwendung mit Python
Bin ich versucht zu implementieren P2P in meinem Projekt, aber ich stieß auf ein problem wegen Missverständnis von diesem P2P.
Hier ist, wie ich bin, es umzusetzen:
- Den client öffnen Sie das Programm, und sendet an den server, dass er eine Verbindung herstellen möchte, der server wird dem client eine Warteliste.
- Wenn es mehr sind dann zwei Leute mit dem server verbunden ist, sendet der server Ihnen die Adressen, die Sie verbinden sollte, und entfernt Sie aus der Liste.
So, jetzt, hier kommt das problem:
Wie kann ich ein server und ein client in einer Datei? Sollte ich zwei threads - Einen für den client und eine für den server?
Ist es eine gute Idee, einen p2p-server wie ich oben beschrieben habe?
Ich finde nicht alle Beispiele in python geschrieben über das internet.
client-server-sounds in Konflikt mit peer-to-peer. Trotzdem müssen Sie "etwas", die Ausstrahlung des peers Verbleib. Ich empfehle zum erstellen eines Programms für das "etwas", das ist wahrscheinlich publisher-Abonnenten mit discovery-Thema. Dann ein anderes Programm für die aktuelle p2p-Verfahren. Die p2p-wahrscheinlich benötigen thread oder concurrency-Bibliothek wie gevent, verdreht, tornado, etc. Lassen Sie die p2p-Instanz abonnieren Sie die Entdeckung Thema, und die anderen Kollegen. Von dort aus zwei peers tun, die hand schütteln, eine Verbindung herstellen, das Geschäft zu tun.
InformationsquelleAutor | 2015-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin mir nicht ganz sicher, ob ein P2P-system ist für das Projekt notwendigen Anforderungen, jedoch...
Einem P2P-system nicht über separate client-und server-Anwendungen, sondern es ist eine einzelne Anwendung, die fungiert sowohl als client und server. In einem gewissen Sinn, die Anwendung fungiert als client, denn es greift auf einen server und er fungiert als server, weil Sie akzeptiert Abfragen/Befehle von einem client.
http://cs.berry.edu/~nhamid/p2p/framework-python.html zeigt, wie der Bau einer einfachen p2p in Python. Dieses Beispiel macht eine Schleife um verbindungen akzeptieren zu kommen (peers) und erstellt einen thread zum verarbeiten der eingehenden Verbindung. Es hat auch die Struktur in Ort, um Nachrichten zu senden zurück zu angemeldet-peers.
Ein großes problem ist, wie ein peer-suchen nach anderen peers, und dies erfolgt normalerweise durch eine Dritte Partei, beispielsweise ein spezielles "Koordination"/"bootstrap" - server, der zeigen kann ein peer mindestens einen anderen peer (der von dort könnten Fragen, die peer für die peers). Ihr Projekt vielleicht nicht brauchen, da Sie bereits die Adresse kennen, Ihre peer verwenden, um die Verbindung zu einem anderen peer.
Verweisen auf die website oben, würden Sie eine handler-Funktion, und legen Sie es in sich selbst.Handler. Da die Funktion übergeben werden würde, die eingehende peer die Informationen, die Sie könnte die Anwendung zurück zu senden, die Daten, die Sie möchten (die Adresse verbinden)
InformationsquelleAutor Jacob Zelek