Communication P2P sans serveur

Signaler
Messages postés
2
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
7 août 2004
-
Messages postés
1
Date d'inscription
dimanche 23 novembre 2008
Statut
Membre
Dernière intervention
6 février 2010
-
Bonjour a tous !

Voilà, j'essaie de développer un logiciel de messagerie instantannée pour guilde de joueurs fonctionnant sans serveur indexeur. En fait, j'utilise une base de données MySql distante pour l'authentification des utilisateurs et ensuite, je retire une liste des IPs actives et je me déconnecte. Mon problème est que maintenant, j'ai une dataTable avec les ips des utilisateurs mais je n'arrive pas a figurer comment établir une connection avec tous ces utilisateurs et ce, sans serveur.

J'ai essayé les sockets asynchrones mais le problème est que le client doit également être un serveur ou autrement dit, mon application doit pouvoir écouter et envoyer sur le même port !!!

Avez-vous une idée de comment je pourrais m'y prendre ? Je ne veux pas de code déjà tout fait mais plutôt des conseils :) !

merci à l'avance !

JogboX.

9 réponses

Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
En fait la solution des sockets asynchrone est la plus repandue, lors de la connection d'un client sur un autre le socket créer par le "serveur" (a l'ecoute) n'est pas obligatoirement sur le meme port tout en etant transparent pour le client.

(Suis pas sur d'etre tres clair la :p)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
15
En fait en P2P tout tes clients sont clients et serveur.
Le truc que je ne comprends pas c'est pourquoi ne pas passer par un serveur alors que tu en utilises un pour gerer tes IP !

::|The S@ib|::
MVP C#.NET
Messages postés
2
Date d'inscription
jeudi 9 octobre 2003
Statut
Membre
Dernière intervention
7 août 2004

Merci les gars pour vos réponses ! En fait, j'utilise un serveur MySql distant que pour l'identification. Ce serveur est plutôt dédié à l'hébergement Web et non à la communication donc il me faut une solution qui soit indépendante.

Pour l'instant je retire une liste d'Ips initiale que je mets à jour en recevant un message d'un utilisateur plus récemment connecté et qui dispose d'une liste plus à jour. Le principe va plus loin mais pour l'instant, j'aimerais bien comprendre COMMENT DÉVELOPPER UN CLIENT QUI SOIT À LA FOIS UN SERVEUR et COMMENT C'EST POSSIBLE D'ÉCOUTER ET D'eNVOYER des paquets sans recevoir l'erreur .net disant qu'habituellement, plus d'une paire connection/port n'est pas authorisée !

voilà :)
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
15
Tu met un port different pour le client et le serveur ...
::|The S@ib|::
MVP C#.NET
Messages postés
1
Date d'inscription
samedi 19 juin 2004
Statut
Membre
Dernière intervention
31 août 2004

Contrairement a JogBox,
J'arrive a faire tourner mon application sur PDA (Pocket PC 2003) et sur mon PC. J'essaie aussi d'etablir une communication entre mon PDA et mon PC. Chaque equipement joue le role de client/ serveur. Le probleme se pose lorsque j'essaie d'etablir la connection entre les deux PCs. Le PDA ne voit le PC que lorsque la connection Internet est existante. Le PC quant a lui ne voit pas le PDA du tout.
Lorsque je teste l'application de facon independente le serveur PDA repond au requete du client PDA. Pareil pour le PC. Mon PDA est connecte au PC via ActiveSync 3.7. Toute aide serait vivement appreciee.
Messages postés
2
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
2 décembre 2004

Bonjour.
Je suis en train de developper une logiciel de messagerie dont le fonctionnement est semblable à celui de jogbox. Mon probleme est que je ne sais pas comment etablir cette connexion P2P entre des PC se trouvant sur des réseaux locaux.

ex : PC1 -> Routeur ------ Internet -----> Routeur -> PC2.

Je pense qu'il faut que l'IP que je récupère du client (de chaque personne se connectant) soit l'IP publique (du PC partageant la connexion) mais je ne sais pas comment établir la connexion avec le PC2 (par exemple). En effet je pourrai établir une connexion avec le PC partageant la connexion, mais comment en établir une avec un PC se trouvant sur le réseau.

J'espère que mon explication est assez claire.

Merci pour toute reponse.
Messages postés
1522
Date d'inscription
mardi 18 décembre 2001
Statut
Modérateur
Dernière intervention
21 août 2010
5
Il faut que le routeur soit configurer pour rediriger le port de connection vers le PC interne. (c'est le meme principe que si tu as un serveur web derriere ton routeur, il faut conf le routeur pour que ca marche)

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
Messages postés
2
Date d'inscription
mardi 1 avril 2003
Statut
Membre
Dernière intervention
2 décembre 2004

Merci pour cette reponse.
Finalement nous allons opter pour le passage par un serveur.
Messages postés
1
Date d'inscription
dimanche 23 novembre 2008
Statut
Membre
Dernière intervention
6 février 2010

moi je veut realiser une application p2p sous l'architecture décentralisé
si vous avez une idée contacter moi