Hej. Jeg undrede mig egentlig lige over om det er muligt at lavet et (meget) simpelt p2p program. Altså ligesom WinMx, Kazaa med mere.
Det sådan et program skal kunne er at sende (lovlige) filer fra en person til en anden, ligesom i tidligere nævnte programmer.
Helt basalt fungerer P2P netværk typisk ved at man har en eller flere kendte servere. Disse servere fungerer ved at en klient kobler op imod serveren, spørger efter en bestemt fil og så finder serveren frem til hvilke andre klienter der har den pågældende fil liggende. Den sender tilbage til klienten med disse oplysninger og klienten kan så koble op imod en af de "gyldige" indhavere og requeste filen.
Så måde man
kunne gøre det på er følgende:
Du skal have to applikationer, en klient del og en server del.
Klient fungere således:
1. Connect til server
2. aflevere en liste over filer som klient er indehaver af.
3. aflevere en liste over ønskede filer.
4. Vent på svar fra serveren.
5. Hvis serveren svarer tilbage med positivt resultat
6. Connect til den ønskede klient og request fil.
Sereren fungere således:
1. Modtag connect fra klient.
2. Modtag liste fra klient og opdater den opbevarede liste fra sidste gang hvis denne findes.
3. Modtag ønsker om ny fil fra en klient.
4. Undersøg hvilke klienter der har filen liggende.
5. Send liste med positive klienter til spørgende klient.
Alternativ metode:
Serveren:
1. Modtag connect fra klient
2. Modtag ønske fra klient.
3. Spørg alle connectede klienter om de har filen.
4. Hvis en eller flere svarer positivt, send data om disse tilbage til spørgeren.
Klient:
1. Connect til serveren
2a. Send ønske til serveren.
2b. Modtag svar liste.
2c. Connect til valgt klient og anmod om fil.
2d. Download fil.
3. Modtag ønske fra serveren.
3a. Send svar tilbage.
4. Modtag ønske fra klient.
4a. Godkend eller afslå ønske.
4b. Hvis godkendt tillade da overførsel bliver sat igang.
Hvis jeg skulle kode et P2P ville det nok være noget i denne stil jeg ville gå ud fra. Det er relativt omfattende når alt er sagt og gjort, men temmelig sikkert en ualmindelig sjov opgave.
Du bør sætte dig ned med papir og blyant og så tegne et omhyggeligt diagram over kommunikationen, samt virkemåde for hver del af systemet.
Desuden skal du endelig også sørge at omhyggeligt udforme den protokol systemet skal bruge til at sende og modtage ønsker og lister.
Det er ikke nogen svær opgave vil jeg mener, men den kræver omtanke og grundig forarbejde, eller vil det temmelig sikkert bliver for uoverskueligt for dig.
Sørg for at definerer helt entydigt hvad opgaven går ud på.
Del den derefter op i overkommelige bider.
Og gå så til angreb på hver enkelt del.
God fornøjelse.
--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk