82 votes

La liaison a échoué : Adresse déjà utilisée

J'essaie de lier une socket à un port ci-dessous :

if( bind(socket_desc,(struct sockaddr *) &server, sizeof(server)) < 0)
{
    perror("bind failed. Error");
    return 1;
}
puts("bind done");

Mais il donne :

$ ./serve   
Socket created    
bind failed. Error: Address already in use

Pourquoi cette erreur se produit-elle ?

1voto

ayan-cs Points 11

J'ai également été confronté à ce problème, mais je l'ai résolu. Assurez-vous que les programmes côté client et côté serveur sont tous deux sur différents projets dans votre IDE, dans mon cas NetBeans. En supposant que vous utilisiez localhost, je vous recommande d'implémenter les deux programmes en tant que deux projets différents .

1voto

AbdolHosein Points 25

Cela se produit également lorsque vous n'avez pas donné suffisamment de permissions (lecture et écriture) à votre fichier sock !

Il suffit d'ajouter l'autorisation attendue à votre dossier contenu dans sock et à votre fichier sock :

 chmod ug+rw /path/to/your/
 chmod ug+rw /path/to/your/file.sock

Alors, amusez-vous !

1voto

MD SHAYON Points 93

Pour mettre fin à tous les processus du nœud :

killall -9 node

0voto

cormacncheese Points 51

Vérifier la présence d'un processus en cours d'exécution (pid) :

pidof <process-name>

Tuer les processus :

sudo kill -9 process_id_1 process_id_2 process_id_3

0voto

MD ABDUL KADIR Points 41

Vérifiez tout d'abord quel port est à l'écoute,

netstat -tlpn

puis sélectionner le port disponible pour la connexion,

sudo netstat -tlpn | grep ':port'

Fixez-le également aux interfaces de votre serveur et de vos clients. Allez dans l'onglet Barrière -> changer les paramètres, -> type de valeur de port -> sauvegarder/ok

enter image description here

Vérifier que les clients et le serveur ont des valeurs de port similaires

Puis recharger.

Maintenant, tout devrait bien se passer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X