Projektplanung. Was haltet ihr von meinem aufbau?
-
hi leute.
ich hab mal so auf die schnelle einen projektplan zusammengestellt und wollt eure meinung dazu wissen.
verbesserungen etc. bitte gleich posten.Peer to Peer Projekt
Client
(Start)
- Beim starten des Clients wird in einem Array eine liste der vorhandenen Dateinamen des „shared folders“ erstellt. Diese liste wird dann an den verbundenen Server mitgeteilt.(Suchen)
- Der Client sendet dann per socket den Suchstring an die vorhandenen Server in einer liste. Das ganze sollte per schleife ablaufen.
Wurde die schleife beendet und somit der Suchstring an alle vorhandenen Server gesendet, wartet der Client auf die antwort von den Server.(Ergebnis)
- Sobald der Client eine antwort von einem Server bekommt, wird diese (also das String - packet) in eine liste gepackt. Diese liste enthält:- Dateiname
- Von welchem Benutzer
- Grösse
- Dateityp
- IP Adresse von wo sich der Client diese Datei runterladen kann.Ist die Auflistung beendet, kann der User mit dem download anfangen, indem er auf die entsprechende Datei bzw. Listeneintrag klickt und „download“ auswählt. Es wird nun anhand der IP Adresse aus dem Listeneintrag diese Datei Runtergeladen.
Server
(Start)
- Der Server wird einfach im Hintergrund aktive sein und wartet auf connections von Clients.(Client verbunden)
- Sobald sich ein Client mit dem Server verbunden hat, erstellt der Server in einem Array einen „User account“. In diesem account steht zunächst mal der verbundene Benutzername, seine IP Adresse und natürlich die shared liste die ja der Client beim starten selbst erstellt hat.(Suchstring erhalten)
- Sobald der Server einen Suchtring erhalten hat, durchsucht er mit einer schleife die „Array accounts“ und sendet bei einem erfolgreichem Ergebnis dieses so genannte String - packet an den Client. Das packet besteht aus den einträgen wie oben beim Client beschrieben.
-
ich bin begeistert...
-
...was hat das mit Projektplanung zu tun? das ist höchstens ein Umreissen von grundlegenden Ideen - Konzept wäre schon übertrieben...
-junix
-
Ich dachte bei P2P gibt es keine Server und Clients, sondern nur Peers images/smiles/icon_rolleyes.gif
ausserdem hat das eher was im Projekte Forum zu suchen
-
Ahemm ... das ist mehr ein PAP (=Programmablaufplan) kein Projektplan images/smiles/icon_smile.gif
-
Mehr als ein grobes konzept einer Client serveranwendung ist das ja nicht. bisher kriegt der user nur raus wo die datei liegt die er sucht.
spassig wird erst dann, wenn man dann hiterher von mehreren hosts gleichzeitig ziehen kann. ( was auch p2p dann meint )
wie währsmal das ihr versucht ein protokoll auf zustellen, das ohne zentralen server auskommt, ( was zentral ist läst sich angreifen und verbieten -> Morpheus oder so is ja deswegen dichtgemacht worden der alte client)
Gruss termite
-
Original erstellt von Termite:
**wie währsmal das ihr versucht ein protokoll auf zustellen, das ohne zentralen server auskommt, ( was zentral ist läst sich angreifen und verbieten -> Morpheus oder so is ja deswegen dichtgemacht worden der alte client)Gruss termite**
Wie willst Du dennsoetwas realisieren?
Dann müsste man ja teusende IP Adressen abpingen ob der entsprechende Port dort belegt ist und ob sich ein Client meldet.Ich glaube nicht das es sich so gut macht.
Aber das Prinzip von P2P ist bei den meisten das die Files oder Foilelisten von servern verwaltet werden (eDonkey) und sich die Clients dort einloggen.
-
das System ist kein echtes P2P, wenn es eine Fileliste auf einem Server gibt!
Man kann P2P damit realisieren, dass man ein paar bekannte "Router" im Netz hat, über die man sich in das P2P Netz einloggen kann. So wird das zum Beispiel auch bei GNUtella gemacht.
Es gibt aber auch P2P Netzwerke, die LANs sind, zum Beispiel Clustering (Beowulf) da spielt das ja eh keine Rolle
-
wie währsmal das ihr versucht ein protokoll auf zustellen, das ohne zentralen server auskommt, ( was zentral ist läst sich angreifen und verbieten -> Morpheus oder so is ja deswegen dichtgemacht worden der alte client)
gnutella (2) ist so eins.
Protokolle die nicht ganz ohne Server laufen, nennt man semi-p2p Protokolle.