Appli client-serveur et p2p decentralisé
Tomtom
-
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.
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:
- Appli client-serveur et p2p decentralisé
- Cybera client - Télécharger - Divers Réseau & Wi-Fi
- P2p mobile - Accueil - Guide technologies
- Wawacity p2p - Accueil - Outils
- Changer serveur dns - Guide
- Serveur entrant et sortant - Guide
1 réponse
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 ?
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 ?