IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Address already in use


Sujet :

Réseau

  1. #1
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut Address already in use
    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

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    ben faut tuer le process qui occupe le port
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut
    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

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 136
    Points : 133
    Points
    133
    Par défaut
    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 :

    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));
    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

  5. #5
    Membre habitué Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Points : 138
    Points
    138
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.net.BindException: Address already in use: connect
    Par Spiff__ dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 10/08/2009, 06h54
  2. [Sockets] Erreur 98 "address already in use"
    Par iReNu dans le forum Réseau/Web
    Réponses: 6
    Dernier message: 17/04/2009, 17h27
  3. Bind(): address already in use
    Par adesport dans le forum Réseau
    Réponses: 3
    Dernier message: 18/01/2009, 12h27
  4. address already in use
    Par sleigh dans le forum Administration système
    Réponses: 0
    Dernier message: 14/09/2007, 10h03
  5. Bind Exception: Address already in use: connect
    Par metalcoyote dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/06/2007, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo