Op vrijdag 12 oktober 2001 21:52 schreef Janoz het volgende:
Wat ik dus net zei.. Peer2peer
wil dus niet met een applet. Dat komt omdat ze bij sun wel hebben nagedacht over de veiligheid

.. Wat je moet doen is een soort server opzetten (of met php of asp gaan werken, maar dat raad ik sterk af eigenlijk omdat dit ten eerste voor veel overhead in de communicatie zorgt en ten tweede omdat het http protocol niet bedoeld is voor dat soort communicatie) Op zich is dat in Java niet zo heel erg moeilijk. Een voorbeeldje van een client + server is zo te vinden en de Socket class mag ook gebruikt worden in een applet (mits er verbinding wordt gemaakt met de computer waarvandaan ook het applet komt)
Ikzelf heb laatst een soort "proof of concept" gemaakt van iets soortgelijks (client + server met games ed) maar dan met flash als client.. Dus ik heb eventueel nog wel een paar tips.
Dat niemand nog op het idee komt van een server side proxy!!
Damn!!
Gewoon op je server een Java app draaien die 1 op 1 de client verbindingen overzet. Dan krijg je dus in weze peer to peer via een je server. Voordeel is dat je dan ook mooi de scoring kan bijhouden en als je het goed programmeert dat er niet zo makkelijk vals geespeelt kan worden met de score's.
Maar!! Een java applet kan alle rechten verkrijgen die het hebben wil. Kwestie van een security certificaat opstellen in Java en die laten accepteren door de gebruiker. Alleen als die het goedkeurt kun je bijvoorbeeld regelen dat je dataverkeer mag hebben naar willekeurige IP adressen. Als je wilt kan je een Applet alle rechten die een aplicatei heeft, aan laten vragen. Maar zoals gezegd: Vragen. En het antwoord hoeft geen ja te zijn.
Trouwens iemand zegt dat er in een peer-to-peer verbinding toch echt wel een server is. Euhm in weze niet. Want na de initiele aanmelding hebben de clienten dezelfde verbindingen met elkaar en allebij kunnen ze de sessie stoppen. Kwestie van de socket dichtknallen.
Voorbeeld van peer to peer:
Twee clienten met een socket waarnaar geluisterd wordt.
De ene client stuurt een bericht naar de andere client, met daarin de melding dat hij te vinden is op die locatie. De reactie is dat de aangesproken client ook een verbinding opzet met de aanvragende client, echter nu niet met een melding, je vind me daar en daar, maar met de melding, ik ben die en die. Vervolgens herkenning van ah, ik heb antwoord gekregen, en vervolgens gewoon data en requests pompen over de output stream naar de andere client.