Problème de connection grave [Résolu]

Signaler
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011
-
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011
-
Bonjour a tous je présente mon problème :

Je n'arrive pas a établir de connexion en local en utilisant mon ip public 86.72.181.xx.
cela fonctionne lorsque j'utilise mon ip de réseau 192.168.1.20.
La connexion ne s'établit pas correctement, le client et le serveur restent en sockconnecting  (6) ou sock error (9).
C'est a dire que le serveur recoi bien une demande de connection mais ne l'accepte pas.
J'utilise la 9Box
Visual Basic est en exption dans le parfeu windows.
j'ai ouvert les ports sur le NAT dur routeur (9box).

=========================

------------------------
client :
------------------------
Client.Connect "86.72.181.xx", 2850

=========================

------------------------

Serveur:

------------------------

Private Sub Form_Load()

Server.Bind txtPort
Server.Listen
End Sub
_____________________

Private Sub Server_ConnectionRequest(ByVal requestID As Long)
Server.CloseSck
Server.Accept requestID
End Sub


=========================

Ianis

11 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
désolé mais pas possible...

j'ai essayé en local, sur mon ip public et même sur la tienne
un "9" provoqué est relevé, et je suis en timeout pour toi, donc il y a une cafouille pour le debugging, et
ton routeur est peut-être mal configuré("peut-être", si j'ai essayé quand ton appli server n'était pas lancée)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
salut,

problème 1 : "ouvrir les ports" ne suffit pas, il faut rediriger le port (en l'occurrence le 2850) vers le 2850 de ta machine (...1.20)
FAQ :
Q : [../doc/faq.aspx#common_nat Mon application de communication (chat,
messenger, jeu, autre) fonctionne uniquement en réseau local, que faut-il
faire pour qu'elle fonctionne sur internet]


problème 2 : es-tu certain de bien utiliser le winsock de microsoft? (MSWINSCK.OCX)
de mémoire... la méthode "Server.CloseSck" n'existe pas !
(et j'ai un petit doute pour "Server.Bind") 
Server.Close
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
Bind existe ... mais on ne peut s'en servir qu'en UDP.
CloseSck n'existe tout simplement pas.

Pour faire serveur TCP, tu dois absolument avoir au minimum 2 sockets : un qui attend les demandes et un autre par client.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
ah oui UDP..., j'me disais bien...

par contre le rôle serveur peut être effectué avec un seul socket, mono-connexion
"un autre par le client" oui...., dans l'autre projet
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011

[auteur/PCPT/401740.aspx PCPT] >


problème 1 : déjà fait quand je disait ouvrir c'était plutôt rediriger


problème 2 : closesck est utiliser avec le csocketmaster qui est quasiment identique au winsock.
et bind peut s'utiliser en TCP

Cela ne résous pas mon problème =)
Ianis
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
met en TCP
ne BIND pas
teste avec le mswinsock, pour voir....
(je ne connais pas le csocketmaster, et apparemment tu mélanges les méthodes tcp/udp)
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011

===================
Serveur :
===================
Private Sub Form_Load()
Winsock1.LocalPort = 2850
Winsock1.Listen
End Sub

Private Sub Timer1_Timer()
Form1.Caption = Winsock1.State
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub
------------------------------
==================
Client
==================

Private Sub Form_Load()
Winsock1.Connect "86.72.181.88", 2850
End Sub

-------------------------------------------

Je lance le serveur ensuite le client

Sock state = 9

Ianis
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
toujours faire un CLOSE dans le _Load

donc 1 avant le listen, et 1 avant le connect

toujours un close en fermeture
donc des CLOSE dans le _Error des sockest, et dans le _UnLoad des deux forms

ps : as-tu bien rebooté ton routeur après avoir configuré ta NAT ?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
36
... et si tu es en état  9 = erreur, quel est l'erreur relevée par le winsock?
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011

déjà essayer aucune erreur il passe juste en sock 9

Ianis
Messages postés
87
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
13 janvier 2011

je pense que c'est ça.