PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Nombre de connexions max sur un port par socket
Nombre de connexions max sur un port par socket
Débuté par Stef, 17 mai 2006 19:04 - 10 réponses
Posté le 17 mai 2006 - 19:04
Bonjour tout le monde.

Je suis en train de réaliser un logiciel de genre "chat" ou "salon de discussion".

Pour le moment on va dire que j'ai réalisé un programme serveur qui ouvre un port (5005) puis qui va lire dessus constament pour voir si un nouvel utilisateur se connecte.

Jusque la pas de prob, ça marche très bien :).

Ensuite quand je tappe qqchose a partir d'un autre éxecutable client, le serveur recoit bien les infos.

Quand je tappe qqchose avec le serveur et que je l'envoie à mon client ou a tout les clients connectés, pas de problème :).

Tout marche parfaitement dans un réseau local.

NOW, le problème se situe au niveau d'internet quand je veux y accéder à partir d'un PC qui n'est pas sur la meme connexion réseau.

Je ne vois pas comment faire :/.

Je me suis inscris à dyndns.com pour me faire une sorte de redirection vers mon adresse IP internet.

Quand je tappe l'adresse dyndns.com dans mozilla, j'accède en fait à mon routeur qui est en adresse IP 192.168.1.1.
Comment faire pour que l'on accède à l'adresse IP de mon PC qui est 192.168.1.2 sachant que j'ai déjà autorisé mon routeur pour le port 5005 vers l'adresse IP 192.168.1.2.

Merci d'avance a toutes les personnes qui m'aideront ;).
Posté le 17 mai 2006 - 23:33
Dans son message, Stef_Bea racontait :


Bonjour tout le monde.

Je suis en train de réaliser un logiciel de genre "chat" ou "salon de discussion".

Pour le moment on va dire que j'ai réalisé un programme serveur qui ouvre un port (5005) puis qui va lire dessus constament pour voir si un nouvel utilisateur se connecte.

Jusque la pas de prob, ça marche très bien :).

Ensuite quand je tappe qqchose a partir d'un autre éxecutable client, le serveur recoit bien les infos.

Quand je tappe qqchose avec le serveur et que je l'envoie à mon client ou a tout les clients connectés, pas de problème :).

Tout marche parfaitement dans un réseau local.

NOW, le problème se situe au niveau d'internet quand je veux y accéder à partir d'un PC qui n'est pas sur la meme connexion réseau.

Je ne vois pas comment faire :/.

Je me suis inscris à dyndns.com pour me faire une sorte de redirection vers mon adresse IP internet.

Quand je tappe l'adresse dyndns.com dans mozilla, j'accède en fait à mon routeur qui est en adresse IP 192.168.1.1.
Comment faire pour que l'on accède à l'adresse IP de mon PC qui est 192.168.1.2 sachant que j'ai déjà autorisé mon routeur pour le port 5005 vers l'adresse IP 192.168.1.2.

Merci d'avance a toutes les personnes qui m'aideront ;).


Si tu as déja rerouté le port 5005 du routeur vers le port 5005 de 192.168.1.2 alors il n'y a rien a faire, juste attaquer ton adresse @dyndns.com
sur le port 5005 et les paquets seront automatiquement routés (aucune programmation necessaire). Par contre il faut penser dans le routeur a dire que
les connections liées doivent elles aussi etre routées vers 192.168.1.2
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 17 mai 2006 - 23:34
Bonjour,
Déjà, je vois un gros problème dans ta config: 192.168.1.1 est l'adresse LAN de ton routeur,or dans DynDNS tu dois donner l'adresse WAN ( aqua PUBLIQUE ) de ton routeur. Les adresses 192.168.x.x ne sont pas routables, tu ne peux pas les utiliser sur Internet.
Ensuite sur ton routeur tu dois faire une redirection d'adresse, appelé aussi Translation d'Adresse ( NAT ) : tout ce qui vient de l'extérieur sur le port 5005 doit être renvoyé vers ton serveur, ici 192.168.1.2.
Et voiloù.

Frédéric.
Posté le 18 mai 2006 - 11:13
Re et merci de vous intéresser à mon pti soucis.

Donc pour répondre à Frédéric : Pas d'inquiètude, je donne bien l'adresse WAN de mon routeur à dynDNS (une adresse du genre 82.XX.XX.XX). Donc quand je tappe xxxxxxx.dyndns.org, j'arrive bien sur la page admin de mon routeur ;).

Maintenant, j'ai bien configurer mon routeur pour autoriser le port 5005 vers l'adresse IP 192.168.1.2 mais ça ne marche tjrs pas :/.

Je pense qu'au niveau du paramètrage de mon routeur, j'ai fait les bonnes choses mais je ne vois pas où ça bloque :/.

En tout cas quand je fais un Socketconnecte("Chat",5005,"xxxxx.dyndns.org") j'ai une erreur de connexion.
En gros il n'arrive pas à se connecter au socket en passant par internet, qui est pourtant ouvert via l'autre programme (Serveur).
En local pas de problème.

Je bloque :(.
Posté le 18 mai 2006 - 12:01
Re et merci de vous intéresser à mon pti soucis.

Donc pour répondre à Frédéric : Pas d'inquiètude, je donne bien l'adresse WAN
de mon routeur à dynDNS (une adresse du genre 82.XX.XX.XX). Donc quand je
tappe xxxxxxx.dyndns.org, j'arrive bien sur la page admin de mon routeur ;).

Maintenant, j'ai bien configurer mon routeur pour autoriser le port 5005 vers
l'adresse IP 192.168.1.2 mais ça ne marche tjrs pas :/.

Je pense qu'au niveau du paramètrage de mon routeur, j'ai fait les bonnes
choses mais je ne vois pas où ça bloque :/.

En tout cas quand je fais un Socketconnecte("Chat",5005,"xxxxx.dyndns.org")
j'ai une erreur de connexion. En gros il n'arrive pas à se connecter au
socket en passant par internet, qui est pourtant ouvert via l'autre programme
(Serveur). En local pas de problème.

Je bloque :(.


Bonjour,

Si tu essayes de te connecter sur ton serveur depuis un poste situé sur
ton réseau LOCAL (LAN), il faut faire un socketconnecte avec une
adresse LOCALE -> Socketconnecte("Chat",5005,"192.168.1.2")

Si tu essayes de te connecter sur ton serveur depuis un poste situé à
l'extérieur de ton réseau local, il faut utiliser l'adresse publique
(WAN) de ton routeur -> Socketconnecte("Chat",5005,"xxxxx.dyndns.org").
Ton routeur feras ensuite une convertion d'adresse (NAT) en utilisant
la configuration de routage que tu lui auras défini (TCP/UDP -
Port->IP:Port ou TCP/UDP 5005 192.168.1.2:5005)

Espérant t'avoir aidé.
Posté le 18 mai 2006 - 12:18
Merci Franck.

En tout cas, pour le moment tout ce que je fais est OK.

Dans le principe j'ai tout bon mais en pratique ça ne marche pas :/.

J'ai bien configuré le routeur pour redirectionner le port 5005 vers mon adresse IP 192.168.1.2.
Pourtant ca ne marche pas :(.

Si qqun a une autre idée, je suis preneur.
Posté le 18 mai 2006 - 12:49
Si tu fais tout les tests depuis ton réseau, est-ce que tu as ouvert le port 5005 en sortie ?
Si tu fais un telnet XXX.XXX.XXX.XXX.dyndns.org 5005, est-ce que tu as une réponse ?
Si tu fais un tracert -d XXX.XXX.XXX.XXX.dyndns.org, qu'est-ce que tu obtiens comme réponse ?

Frédéric.
Posté le 18 mai 2006 - 12:53
Dans son message, Stef_Bea racontait :

Merci Franck.

En tout cas, pour le moment tout ce que je fais est OK.

Dans le principe j'ai tout bon mais en pratique ça ne marche pas :/.

J'ai bien configuré le routeur pour redirectionner le port 5005 vers mon adresse IP 192.168.1.2.
Pourtant ca ne marche pas :(.

Si qqun a une autre idée, je suis preneur.


Jvais proposer des trucs basics, mais as-tu un firewall en plus du routeur ? Le port 5005 est-il ouvert sur le routeur ? (car le rediriger c'est
bien, mais s'il est pas ouvert sur internet c'est pas d'une grande utilité)
As-tu essayé de router un autre port du routeur vers la machine serveur ? (des fois que le 5005 soit déja pris sur le routeur)

Un test que tu peux faire (si ton routeur le permet) : depuis l'intérieur de ton réseau, interroger l'adresse net de ton routeur. Ca devrait deja
permettre de cibler si ca vient de la méthode de connexion ou du routeur lui meme.

J'espere avoir aidé, des fois les solutions "basiques" sont les bonnes ^^

Bon dev
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 19 mai 2006 - 11:56
ALors voilà.

Je me suis renseigné un peu sur d'autre forum et :

j'ai trouvé un tuto pour configurer mon routeur pour Emule : http://www.portforward.com/english/routers/port_forwarding/Dlink/DSL-504T/eMule.htm

J'ai installé Emule, fait la connexion et j'ai bien vu que j'étais en LowID.
J'ai fais la manip comme dans le tuto pour ouvrir les ports 125 et 135 puis j'ai appliqué les modifs pour l'adresse IP 192.168.1.2. Je me reconnecte avec Emule et là, je vois HighID donc ça marche :).

Maintenant je refais tout pour mon logiciel.

J'ouvre le port 5005 et le 42000 vers mon adresse IP 192.168.1.2 pour l'UDP et le TCP.
Je me connecte en passant par le net et ça ne marche tjrs pas :/.

J'ai fait un telnet xxxxxxxxx.dyndns.org 5005 et 42000 et ca me met echec lors de la connexion.
J'ai fait un telnet 192.168.1.2 5005 et 42000 et ca marche du premier coup
Posté le 19 mai 2006 - 13:38
Est-ce que tu arrives à te connecter sur le port 5005 directement sur ton adresse publique ?
Est-ce que tu as ouvert le port 5005 en sortie pour toutes tes adresses internes ?

Frédéric.
Posté le 20 mai 2006 - 00:07
Salut,

J'ouvre le port 5005 et le 42000 vers mon adresse IP 192.168.1.2 pour l'UDP
et le TCP. Je me connecte en passant par le net et ça ne marche tjrs pas :/.


Tout simplement IMPOSSIBLE!
L'adresse 192.168.1.2 n'est pas accessible sur le réseau internet.
C'est une adresse de classe C, réservée pour les réseaux LOCAUX.

Donc, qu'entends tu par "Je me connecte en passant par le net"?

Pour moi, tu essayes d'accéder à ton serveur (qui se trouve chez toi)
en utilisant une adresse IP publique (ex: 82.xxx.xxx.xxx) ou un nom
d'hôte (ex: xxx.dyndns.org) depuis une même (ou une autre) machine qui
se trouve également chez toi (de fait, sur le même réseau LOCAL).

J'ai fait un telnet xxxxxxxxx.dyndns.org 5005 et 42000 et ca me met echec
lors de la connexion. J'ai fait un telnet 192.168.1.2 5005 et 42000 et ca
marche du premier coup


Relis mon premier message, c'est absolument NORMAL.

On va faire plus simple:

Ton logiciel SERVEUR est CHEZ TOI, sur une machine A et a pour adresse
192.168.1.2.

1. Si tu veux te connecter sur la machine A (serveur) avec ton logiciel
client (qui se trouve également sur la machine A), tu dois utiliser sur
ton client un "socketconnecte" avec une des adresses suivantes:
192.168.1.2 ou 127.0.0.1 ou "localhost".

2. Si tu veux te connecter sur la machine A (serveur) avec ton logiciel
client (qui se trouve sur une machine B (192.168.1.3), également CHEZ
TOI), tu dois utiliser sur ton client "socketconnecte" avec l'adresse
192.168.1.2. (adresse du serveur) ou avec un alias configuré dans le
fichier HOSTS (WINDOWSDIR\system32\drivers\etc\).

3. Si tu veux te connecter sur la machine A (serveur), au travers du
réseau INTERNET, avec ton logiciel client (qui se trouve sur une
machine QUELQUE PART DANS LE MONDE MAIS PAS CHEZ TOI) tu dois utiliser
sur ton client "socketconnecte" avec l'adresse publique de ton routeur
ou avec le nom qui lui est associé (DNS) (xxx.dyndns.org).

Ton routeur "routera" ensuite les paquets en provenance/destination de
l'Internet de/vers ton réseau local (NAT).

Bref, quand tu te connectes depuis ton réseau LOCAL, tu utilises une
adresse LOCALE et depuis internet, tu utilises une adresse PUBLIQUE.

Espérant avoir été plus clair.