P2P

Tags:    delphi

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.

Er dette muligt uden en doktergrad i computervidenskab?


Besøg: http://www.interflare.tk



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
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




Jonas Decko: Prøv at kigge i Indy's chat demo. Der kan du vist finde lidt basalt!

The-Freak: Det er så ikke lige P2P :D


Princippet for data kommunikation er stadigvæk det samme.

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk


Ja... Men regnede med at han ville bruge nogle eksempler på P2P...

MH.

The-Freak

Livet er for kort til at kede sig.



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



Tak for dit svar.
Kender du et eksempel, der viser nogle af basis tingene?

Besøg: http://www.interflare.tk



Prøv at kigge i Indy's chat demo. Der kan du vist finde lidt basalt!













-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



Prøv at kigge i Indy's chat demo. Der kan du vist finde lidt basalt!













-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------


Det er så ikke lige P2P :D

MH.

The-Freak

Livet er for kort til at kede sig.




Jonas Decko: Prøv at kigge i Indy's chat demo. Der kan du vist finde lidt basalt!

The-Freak: Det er så ikke lige P2P :D


Princippet for data kommunikation er stadigvæk det samme.

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk



Nemlig. Eksempler. Er der nogen, der kender nogle?


Besøg: http://www.interflare.tk




Nemlig. Eksempler. Er der nogen, der kender nogle?


Som Jonas siger, så prøv at kigge på Indy eksemplerne. Det er nogle gode basale eksempler på tcp/ip kommunikation (chat), ftp og meget andet. Du kan komme et godt stykke vej ved at kigge på dem.

Jeg har ikke lige kendskab til eksempler der direkte orienterer sig om P2P.

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk



t