Communication P2P sans serveur

jogbox Messages postés 2 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 7 août 2004 - 5 août 2004 à 22:14
abdelouahedelhassen Messages postés 1 Date d'inscription dimanche 23 novembre 2008 Statut Membre Dernière intervention 6 février 2010 - 6 févr. 2010 à 10:59
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

cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
6 août 2004 à 10:24
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]
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 22
6 août 2004 à 12:48
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
jogbox Messages postés 2 Date d'inscription jeudi 9 octobre 2003 Statut Membre Dernière intervention 7 août 2004
7 août 2004 à 13:06
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à :)
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 22
9 août 2004 à 02:24
Tu met un port different pour le client et le serveur ...
::|The S@ib|::
MVP C#.NET

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
intergore Messages postés 1 Date d'inscription samedi 19 juin 2004 Statut Membre Dernière intervention 31 août 2004
31 août 2004 à 21:46
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.
cs_Kamui Messages postés 2 Date d'inscription mardi 1 avril 2003 Statut Membre Dernière intervention 2 décembre 2004
1 déc. 2004 à 20:44
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.
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
1 déc. 2004 à 20:56
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]
cs_Kamui Messages postés 2 Date d'inscription mardi 1 avril 2003 Statut Membre Dernière intervention 2 décembre 2004
2 déc. 2004 à 13:13
Merci pour cette reponse.
Finalement nous allons opter pour le passage par un serveur.
abdelouahedelhassen Messages postés 1 Date d'inscription dimanche 23 novembre 2008 Statut Membre Dernière intervention 6 février 2010
6 févr. 2010 à 10:59
moi je veut realiser une application p2p sous l'architecture décentralisé
si vous avez une idée contacter moi
Rejoignez-nous