Bonjour,
Je reçoit le message ADRESS ALREADY IN USE lorsque j'utilise l'appel bind() ...
Comment dois je couper cette liaison pour pouvoir réattacher un socket à un même port ?
merci d'avance
Bonjour,
Je reçoit le message ADRESS ALREADY IN USE lorsque j'utilise l'appel bind() ...
Comment dois je couper cette liaison pour pouvoir réattacher un socket à un même port ?
merci d'avance
24 hours a day ... never enough
Comment puis je y arriver ?
devrais je recupérer le pid et mettre fin au process de la sorte ?
Est ce que cela se fait du client ou du server ?
merci
24 hours a day ... never enough
Salut,
Si tu écris un serveur qui rempli un service "bien connu", tu peux t'accaparer le port correspondant (80, 21 ...) sinon, tu ne pourras pas toujours tuer le processus qui emploi le port que tu veux. Si le processus est utile ou ne t'appartient pas tu fais comment ?
Une autre astuce, tu passes le port en ligne de commande et tu réessayes jusqu'à trouver un libre.
Et voilà comment moi je procède :
Je laisse le système me trouver un port libre (en choisissant zéro) et je le récupère ensuite : ça marche toujours au premier coup
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 server_addr.sin_port = htons(0); if ((bind(server_socket,(struct sockaddr *)&server_addr, sock_size)) < 0) { perror("bind "); exit(1); } if (getsockname(server_socket, (struct sockaddr *)&server_addr, &sock_size)) { perror("getsockname "); } printf("%s:%i\n", server_info->h_name, ntohs(server_addr.sin_port));
Ce qui n'allait pas , c'est que la création du socket et le bind() se trouvaient dans la boucle ....
Je les en ai sortis et tout fonctionne , je peux desormais me connecter plusieurs fois sans erreurs
merci
24 hours a day ... never enough
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager