Socket, P2P, client/server etc...

Signaler
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012
-
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
-
Bonjour/soir,

J'ai créé un programme client/serveur avec Winsock. Pour qu'il fonctionne, j'ai dû modifier mes paramètres de routeur et indiquer une IP DMZ (celle de mon PC...) sans quoi, impossible au client de se connecter sur mon serveur.
Je remarque que pour emule, par exemple: pour n'importe quelle "configuration" de PC (ou réseau: routeur ou non...), le logiciel fonctionne (normal...). Je pouvais envoyer et recevoir des données (P2P) via emule SANS avoir indiquer d' IP DMZ...
Ma question est donc la suivante: comment procéder pour que mon programme fonctionne chez tout le monde ou presque ? (routeur ou non...)
Autre question sans doute débile: emule n'utilise pas les "sockets" ? (très débutant en la matière...)

Merci d'avance pour vos réponses.

Tibabou

6 réponses

Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
C'est simple : quand tu utilises eMule, ton PC ne fait pas office de serveur mais de client (c'est lui qui se connecte au serveur eMule, sûrement pas l'inverse)

Alors que avec ton client/serveur, le programme sur ton PC fait office de serveur (d'après ce que tu dis)

Sinon l'histoire du High ID c'est parce que les autres peuvent se connecter sur toi pour transférer des fichiers. Si tu es en Low ID, déjà d'après moi tu ne peux pas transférer de fichiers avec les autres Low ID (mais ça je n'en suis pas sûr) mais en plus si un High ID veut se connecter chez toi (il ne peut pas en théorie vu que ton routeur bloque), il doit indiquer cela au serveur eMule, qui lui te transfèrera (par le socket déjà ouvert par toi même) le fait qu'un High ID veut se connecter et que c'est toi qui doit te connecter vers lui (ce qui est possible) afin d'établir la connexion entre les deux.
Evidemment tout ça est automatique avec le client eMule mais c'est ça qui se passe d'après moi
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
J'ai oublié de répondre aux questions :)

Ben tu n'as rien à changer, un serveur DOIT avoir ses ports ouverts, c'est à dire que le routeur doit rediriger les ports correspondants à ton programme vers ton PC (ou te mettre une IP DMZ comme tu dis, ce qui revient au même vu que ça redirige tous les ports au lieu de n'en rediriger que certains)

Sinon tout ce qui se connecte à internet (avec windows en tout cas) utilise des sockets
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

CyberP> tout est dit, et je confirme il ne peut y avoir aucun transfert entre 2 lowid.

eMule (enfin plutot edonkey) ne résoud pas le probleme d'un reseau mal
configuré, il ne fait que le contourner partielement avec le systeme de
lowid et highid.
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
1
Moi je dois libérer mes ports pour que je sois en "High ID" sous emule.

Normalement ton client/serveur DOIT fonctionner parfaitemant SANS faire aucune modif des paramètres du routeur!



Pour le reste, je laisse place aux experts...



Ciao
Urgo
Messages postés
130
Date d'inscription
mercredi 2 janvier 2002
Statut
Membre
Dernière intervention
7 juillet 2012

euh... Pourquoi parlez-vous autant d'emule ? emule n'était qu'un exemple...
Les serveurs ed2k permettent aux clients de récupérer (entre autres) les IPs des autres clients. Et c'est ensuite dans un deuxième temps qu'un client se connecte à un autre grâce aux infos envoyées par le serveur...
Bref, si vous me dites que 'normalement', je n'ai pas à changer de config routeur... je vais chercher un peu tout seul mais c'est pas clair.

Merci bien.
Bonne soirée.
Tibabou
Messages postés
283
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
4 juillet 2007
2
Il a pas compris...



Je ne sais pas qui t'a dit que tu n'as pas à changer de config routeur pour faire marcher un serveur mais c'est faux



Quand un client (ici le client de ton programme) se connecte à un
serveur (toi), ça passe par un port (ça tu devrais savoir puisque tu en
as choisi un, de port). Tous les ordinateurs sur ton réseau ont la même
ip sur internet, donc forcément quand le client se connecte à ton ip,
il tombe sur le réseau et plus précisément sur le routeur. Le routeur
qui n'est au courant de rien ne sait pas sur quel ordinateur du réseau
le client veut se connecter... Il faut alors configurer le routeur pour
qu'il redirige tout ce qui passe par le port x vers ton ordinateur.



Il n'y a aucune autre manière de faire comme ça... Un routeur c'est un
des musts niveau sécurité, ça laisse rien passer.... Il n'y aucun moyen
pour que ton serveur fonctionne si tu configures pas ton routeur de
telle façon, et tu ne peux RIEN faire comme modification de ton
programme pour que ça marche



Sinon pour revenir à eMule je suis d'accord. Dans le gros paragraphe de
mon premier post je parlais de la connexion entre chaque client (mais
alors celui sur qui on se connecte devient aussi serveur, mais juste
serveur pour transférer le-dit fichier, pas serveur ed2k)

CyberP,
Celui qui dit que toute question a une réponse