Connexion Winsock: Comment choisir cible derrière routeur et LAN?

Résolu
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015 - 25 mai 2007 à 19:08
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 28 mai 2007 à 09:18
Salut,
Dans, mon prog, j'utilise winsock pour établir une connexion entre 2 PC via internet et/ou LAN. Seulement voilà, si j'installe mon programme sur plusieurs PC d'un LAN, qui sont réliés à un routeur donc tous sur internet et par conséquent ont la même IP WAN (IP internet). Et maintenant si quelqu'un veut se connecter sur de ces PC, il va utiliser l'IP internet mais après, comment faut-il s'y prendre pour choisir le PC du LAN, puisque qu'il ont le même programme et le même numéro de port en écoute? Je cherche une autre solution que: Chaque PC à un port d'écoute. S'il n'y a pas d'autres solution (simple ou pas complexe), est-il possible que le client (celui qui veut se connecter) utilise un port (ex: 1234) et se connecte en utilisant un autre port distant (ex: 5678)?

Merci d'avance

--------------------------------------------------------------------------
Visitez mon site sur http://bp-software.ifrance.com/

3 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
25 mai 2007 à 19:38
Salut
Si tes PCs (derrière ton routeur) sont des clients, pas de problème particulier puisque ce sont eux qui demanderont la connexion vers l'extérieur.
Si tu n'as qu'un seul serveur sur ton réseau privé qui doit être accessible depuis le net :
Il te suffit de créer une règle NAT sur ton routeur pour désigner l'IP (sur le réseau privé) de la machine qui répondra à une demande de connexion sur ton IP WAN sur le port 1234
Si tu as plusieurs PCs qui doivent répondre à des demandes de connexion entrantes :
- Soit tu configures des ports différents pour chaque serveur (ce que tu veux éviter)
- Soit tu leur donnes le même port en écoute et là, il faudra dire à ton routeur de laisser entrer les demandes sur ce port (Port Triggering) afin qu'il renvoie cette même demande côté réseau privé.
Mais lequel des PC répondra (car il ne pourra y en avoir qu'un seul) ? Ca va être au plus rapide ! --> Problème à venir (je ne suis même pas sûr que cela puisse marcher en TCP).
En UDP, la demande parcourt toutes les machines du réseau. Libre alors aux machines de répondre ou pas, alors qu'en TCP, il faudra impérativement qu'une machine réponde, TCP garantit que les données sont bien distribuées, ce qui n'est pas le cas d'UDP où la requète est envoyée mais sans "accusé réception".

Pour ta dernière question : Quand un Winsock se connecte à un serveur, on configure le port du serveur (destinataire), mais en général, on n'impose pas de port côté client (émetteur), on laisse faire le gestionnaire pour qu'il utilise le premier port disponible.
Si tu veux qu'un client extérieur fasse sa demande sur ton port 1234 et que ta machine côté réseau privé recoive cette même demande sur un autre port 5678, il suffit de le dire dans la configuration sur service NAT (port externe 1234, port interne 5678).

En final, je te suggère donc fortement d'utiliser des n° de ports différents pour chacune des machines devant servir de serveur.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Tioneb Messages postés 193 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 29 juillet 2015
26 mai 2007 à 17:54
Je te remercie pour ta réponse. Du coup de vais voir pour attribuer un port différent pour chaque machine...
@+

--------------------------------------------------------------------------
Visitez mon site sur http://bp-software.ifrance.com/
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
28 mai 2007 à 09:18
je te savais pas spécialiste du réseau, Jack.... on en apprend tous les jours ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0