Pb Winsock

Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009 - 3 juil. 2006 à 23:48
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 26 juil. 2006 à 14:42
Bonjour,
J'ai un problème à la 4e ligne : Adresse en utilisation (erreur 10048), pour chaque Winsock...........


For a = 0 To (Contacts.Liste_IP.ListCount - 1)
Load Winsock(a + 1)
Winsock(a + 1).Close
Winsock(a + 1).Connect Contacts.Liste_IP.List(a), Port
Next a

Je ne comprends pas d'où ça vient (d'autant plus que c'est une connexion vers l'extérieur), est-ce que quelqu'un pourrait m'aider ? :)
Merci

14 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2006 à 04:27
salut,

Contacts.Liste_IP.List(a) contient bien une IP valide?
et que contient Port ?

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
4 juil. 2006 à 04:30
Oui l'IP est valide. Port contient le numéro de port.
Cependant j'ai testé cette partie de code dans un nouveau projet, à part, et ça marchait...

Donc l'erreur doit venir d'ailleurs peut être mais je vois pas pourquoi ....?
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2006 à 04:40
pour test....

For a = 0 To (Contacts.Liste_IP.ListCount - 1)
    Load Winsock(a + 1)
    Winsock(a + 1).Close
    Winsock(a + 1).Connect Contacts.Liste_IP.List(a), val(Port) + a
Next a

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2006 à 04:41
même val(Port) + a + 1
(au cas où, ton socket 0 )

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0

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

Posez votre question
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
4 juil. 2006 à 04:42
même problème....
Faudrait que je vois un peu ailleurs il dot y avoir des conflits....

Merci quand même :)
0
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
4 juil. 2006 à 05:31
essai sa

dim b as double
For a = 0 To (Contacts.Liste_IP.ListCount - 1)
b= b +1
Load Winsock(b)
Winsock(b).Close
Winsock(b).Connect Contacts.Liste_IP.List(a), Port
doevents
Next a
0
Dav_c Messages postés 194 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 11 décembre 2015
4 juil. 2006 à 05:33
et aussi au lieu de
For a = 0 To (Contacts.Liste_IP.ListCount - 1)
met
For a = 1 To (Contacts.Liste_IP.ListCount)
je pense
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 juil. 2006 à 06:12
pour DoEvents, y'a pas de doute mais le problème ne peut pas venir de là.
pour le reste, désolé mais c'est vraiment le plaisir de laisser une trace sans fondement....

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
4 juil. 2006 à 13:39
Bon merci à vous pour vos réponses mais le problème doit définitivement avoir un lien vers une autre partie du code.
Je vais essayer de m'en sortir tout seul j'ai pas trop le choix.

Merci encore :)
0
Vedlen Messages postés 360 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 7 septembre 2009
4 juil. 2006 à 17:15
Je crois avoir résolu le problème : il fallait spécifier le LocalPort du Winsock à 0, même s'il est en mode Connect :)

..Enfin je suis pas sûr mais.. j'ai déjà un peu plus de résultats lol
0
deschila Messages postés 4 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 28 juillet 2006
26 juil. 2006 à 11:14
Salut,

J'avais un probleme similaire avec une application client-serveur avec gestion de connexion multiple. Cette erreur apparaissait lorsque j'essayais de connecter-deconnecter plusieurs fois le meme client. En réalité, tu ne peut pas utiliser le meme port pour différentes connexions sur le meme PC. En plus de cela, je pense que lorsque l'on utilise la méthode Close, le port n'est pas libérer automatiquement, l'astuce est donc de faire :
winsock.close
winsock.localport=0
winsock.connect
winsock.close

Ainsi, le port que tu avais utilisé pour connecter ton socket est libéré car il n'est plus attribué au socket (c'est le port 0 qui l'est).
J'ai placé ce code dans l'evenement close du socket et depuis, tout marche nickel, je peux me connecter et me deconnecter plusieur fois d'affilé sans avoir le message d'erreur que tu as.

J'espere avoir été assez clair et que cela resoudera ton probleme.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 juil. 2006 à 13:15
salut,
le port 0 n'existe pas.
il faut juste vérifier que l'état est bien 0 (closed)

mettre 0 pour le port sert à dire au socket qu'il choisisse lui-même un port libre (et pas un défini par nos soins)

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
deschila Messages postés 4 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 28 juillet 2006
26 juil. 2006 à 14:20
Je sais, mon probleme était de liberer le port que l'on utilise aprés avoir invoqué la méthode close puisque apparement, c'est pas fait automatiquement : j'essayais de me reconnecter tout de suite aprés, j'avais un message d'erreur me disant que le port n'est pas libre alors que lorsque j'avais fait close, l'etat était bien passé à 0!
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 juil. 2006 à 14:42
il faut faire un close avant chaque connect (même le premier), c'était le cas?
(aucun besoin de libérer le port, il l'est automatiquement lors d'une fermeture propre. le problème vient d'ailleurs ^^)

<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
0
Rejoignez-nous