cs_MicLau
Messages postés7Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2003
-
9 oct. 2003 à 13:40
blinnit
Messages postés18Date d'inscriptionmardi 24 juin 2003StatutMembreDernière intervention18 mars 2006
-
4 janv. 2005 à 22:01
Bonjour à vous tous,
Je rencontre un pb. avec Winsock et VB6. Je souhaiterai savoir si quelqu'un pouvait m'indiquer une solution ou une piste.
Voilà, j'ai développé une appli. VB (sur PC) qui dialogue avec un hôte (Vax développement en Fortran sous TCPIP).
Tout fonctionne bien. Les échanges de messages se passent très bien.
Mon problème survient lorsque j'arrête mon appli VB.
Si je la relance dans la foulée, je récupère l'erreur suivante :
Number : 10048
Description : Adresse en utilisation
Source : c:\winnt\system32\mswinsck.ocx
Cela donne l'impression que même après fermeture de l'application, le lien réseau est toujours en activité. Il faut que j'attende entre 3 et 5 minutes pour ne plus avoir cette erreur.
J'attends avec impatience vos lumières sur ce pb. gênant.
kimmelf2
Messages postés267Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention27 novembre 2005 11 nov. 2003 à 03:18
le principe du
if sck.state<>sckclosed then sck.close
est bon, mais il ne faut pas le mettre avant de se connecter mais au moment ou tu desire fermer le socket (en quittant l'appli, en cliquant sur un bouton ....)
au demarrage : tu as deja un socket qui tourne sur un port P. ton pgm cree un nouveau socket (donc differnet de celui qui a ete mal ferme) que tu initialise sur le meme port P.
etant donne que ce ne sont pas les meme socket, ca ne sert a rien de fermer le tien, c'est pas lui qui est ouvert
Il faut aussi que tu gere la deconnection par le poste distant :
private sub ton_sicket_close()
if ton_socket.starte<>sckclosed then ton_socket.close
end sub
car sinon, la connection est fermee de l'autre cote, mais toujours ouverte sur ton poste ce qui t'empeche -1- d'accepter une nouvelle connection (serveur) -2- de la reouvrir(client)
Vous n’avez pas trouvé la réponse que vous recherchez ?
blinnit
Messages postés18Date d'inscriptionmardi 24 juin 2003StatutMembreDernière intervention18 mars 2006 4 janv. 2005 à 22:01
le .close ne resout en rien ce problême.
En fait, il faut attendre 1 ou 2 minute avant de pouvoir utilisé le même port local, et je ne sais pas si ça vient de windows ou du serveur.
Alors la solution du "0" comme port est bien car elle attribue un port local different à chaque tentative de connection, mais ce n'est pas pratique pour certains routeurs et firewall.
Pour ma part, pour etre sure que ca marche chez tout le monde, j'utilise une tranche de port configurable et choisi en random avant chaque connection.
Exemple :