Connection Refused

JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007 - 22 mars 2006 à 12:31
JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007 - 22 mars 2006 à 19:27
Salut,




Voici mon probleme (j'utilise la socket api windows avec WSAAsyncSelect) :
Lorsque j'ai un serveur (dedie) qui accepte sur le port1, alors 2 clients en 127.0.0.1 s'y connectent.
Le premier se mets en mode accept sur un autre port port2 pour pas etre en conflit. A ce moment la le deuxieme client se connecte au premier client par le port2.
Jusque la tout fonctionne.
Maintenant lorsque je teste en reseau local :
Mon serveur dedié (192.168.1.5) accepte 2 clients (192.168.1.3 et 192.168.1.4).
Les deux clients se connectent san probleme au dedié.
le premier client accepte sur port2 (normalement plus de conflit mais je laisse ce port pour plus tard).
Le accepte reussi.
Mon client 2 se connecte alors a 192.168.1.3 sur port2 et la ca fonctionne plus !
Ca echoue au niveau du connect apres FD_ACCEPT. erreur renvoyée : 10061 WSACONNREFUSED connexion refusée par le serveur distant :(
J'ai un routeur avec le NAT configuré avec les port1 et port2 ouvert en TCP sur mes 3 machines.
Quelqu'un a une idee ?

5 réponses

JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007
22 mars 2006 à 12:34
*rectification* FD_CONNECT et pas FD_ACCEPT
0
JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007
22 mars 2006 à 12:47
Ah je viens de tester par l'adresse internet et le numero d'erreur renvoyé par connect est different : 10060, connection time out... bizare.
0
JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007
22 mars 2006 à 13:08
oups j'avais pas lu ceci :
If the error code returned indicates the connection attempt failed (that is, WSAECONNREFUSED, WSAENETUNREACH, WSAETIMEDOUT) the application can call connect again for the same socket... lol v tester
+
0
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
22 mars 2006 à 16:54
Les erreurs faut pas les prendrent textuellement. Ensuite t'as pas besoin de changer le port pour faire du multiclient ...
0

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

Posez votre question
JoebarGlut Messages postés 111 Date d'inscription mercredi 13 août 2003 Statut Membre Dernière intervention 17 octobre 2007
22 mars 2006 à 19:27
Non je change de port pour eviter les conflits lorsque je fais des tests a partir de la meme IP (internet ou 127.0.0.1) mais lorsque j'utilise les IP locales il n'y en a pas besoin.
La je viens de passer ma journee a passer d'un ordi a l'autre a esseyer de comprendre comment ne pas etre gené par le routeur et c'est vraiment pas simple, foutus protections, ca devrais pas bloquer des acces autorisés !

J'ai testé cette config avec mes 3 machines : IP LOCALE
SD (192.168.1.3)
C1 (192.168.1.4)
C2 (192.168.1.5)
SD accept() sur port 4006.
C1 connect(192.168.1.3) sur SD port 4006.
C2 connect(192.168.1.3) sur SD port 4006.
C1 accept() sur port 4007
C2 connect(192.168.1.4) sur C1 port 4007 => 10061 WSAECONNREFUSED

Celle ci en passant par l'ip INTERNET
SD (192.168.1.3)(213.129.45.22)
C1 (192.168.1.3)(213.129.45.22)
C2 (83.21.6.81)
SD accept() sur port 4006.
C1 connect(213.129.45.22) sur SD port 4006.
C2 connect(213.129.45.22) sur SD port 4006.
C1 accept() sur port 4007
C2 connect(213.129.45.22) sur C1 port 4007 => 10061 WSAECONNREFUSED

Avec deux ordi : 1 local et 1 autre local avec le serveur dedié en passant par l'ip INTERNET.
SD (192.198.1.3) (213.129.45.22)
C1 (192.168.1.3) (213.129.45.22)
C2 (192.168.1.5) (213.129.45.22)
SD accept() sur port 4006.
C1 connect(213.129.45.22) sur SD port 4006.
C2 connect(213.129.45.22) sur SD port 4006.
C1 accept() sur port 4007
C2 connect(213.129.45.22) sur C1 port 4007 => CA MARCHE ! (enfin dans un sens seulement. Si c'est C2 qui accepte et C1 qui se connecte => 10061)

Tout sur le meme ordi :
SD (127.0.0.1)
C1 (127.0.0.1)
C2 (127.0.0.1)
SD accept() sur port 4006.
C1 connect(127.0.0.1) sur SD port 4006.
C2 connect(127.0.0.1) sur SD port 4006.
C1 accept() sur port 4007
C2 connect(127.0.0.1) sur C1 port 4007 => CA MARCHE dans les deux sens ! mais bon...

Enfin voila j'ai plus de neurones...
0
Rejoignez-nous