Appli client-serveur et p2p decentralisé

Tomtom -  
 Tomtom -
Bonjour à tous,
je me suis lancé ds la programmation d'une messagerie instantanée.
Elle marche bien sur réseau local et je voulais la faire tourner entre 2 machines distantes.
A ce stade se posent toutes les questions de "comment acceder à une machine qui est derrière une box ou un routeur..?"
J'ai vu que la solution était de faire un routage entre les ports de la box et ceux de la machine voulue (forwarding).
Ce que je ne comprends pas, c'est qu'il existe des programmes qui communiquent de cette manière, sans qu'il soit necessaire de bidouiller ds les reglages de la box..
Je pense notamment au p2p décentralisé (reseaux gnutella)..
Je cite un passage que j'ai lu ici (http://www.epsidoc.net/404.html

Le principe est le suivant : un ordinateur "A", équipé d'un programme spécifique (baptisée par Gnutella "servent", car il remplit les fonctions de client et de serveur à la fois), se connecte à un ordinateur "B", lui aussi équipé de ce programme. "A" lui annonce ainsi qu'il est "en vie". "B" relaie cette information à tous les ordinateurs auquel il est connecté, "C", "D", "E" et "F"… Ceux-ci relaieront l'information à leur tour aux ordinateurs auxquels ils sont connectés, et ainsi de suite avec tous les ordinateurs du réseau…

Comment faire pour implementer cette fonction..
J'ai ecrit le programme en java et je me sers des sockets (protocole TCP) pour communiquer...

Merci d'avance de votre aide.
A voir également:

1 réponse

Tomtom
 
En fait le probleme vient du fait qu'il faudrait changer les parametres NAT du routeur (ou de la box) pour que les paquets soient transmis au pc cible..
Or je ne suis pas sur qu'on puisse faire ca en java..
Il faudrait qu'en lancant l'application, ca donne l'ordre au routeur de transmettre vers cet ordi les paquets..
Quelqu'un a une idée ?
0