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 C Discussion :

Perte du file descriptor


Sujet :

Réseau C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Points : 15
    Points
    15
    Par défaut Perte du file descriptor
    Bonjour et voici mon problème au niveau de mon programme serveur.
    Le premier send que vous voyez fonctionne, et les fonctions suivantes font un travail sur un serveur mysql (ca fonctionne aussi). Le dernier send (avec l'envoie de "TEST") reçoit un autre file descriptor, et un message 'bad file descriptor' est envoyé.
    Par contre, lorsque je met ce dernier send() avant mon utilisation de classe mysql, ca fonctionne!
    En quoi la connection mysql influe-t-elle sur la connection de mon client? comment puis-je éviter ce problème? Merci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                                   if(send(new_fd,"Password Correct",16,0) == -1)
                                    perror("send");
                                    connectMe(&mysql);
                                    buf=listMe(&mysql);
                                    printf("%s\n",buf);
                                    disconnectMe(&mysql);
     
                                    if (send(new_fd, "TEST", 5, 0) == -1)
                                            perror("send");
    PS: j'utilise la libraire mysqlclient

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2011
    Messages : 19
    Points : 33
    Points
    33
    Par défaut
    Salut,

    Là comme ça, impossible à dire.

    Cela dépends de ce que tu fais dans tes fonctions et de la déclaration de variables.

    Peux poster l'intégralité de ton code ?

    Cyrille

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Points : 15
    Points
    15
    Par défaut
    Voilà je continue mon investigation et voici un peu plus d'infos sur mon problème:

    J'utilise des connections classiques de mysql (mysql_close, mysql_real_connect).. et des connections classiques socket. Dans le code ci-dessus le new_fd change. vu que mon serveur n'est pas très occupé, j'en ai déduit que dans le tableau des fichiers ouvert je devrai être à 4. Lorsque je met donc ce nombre dans le dernier send, ca fonctionne non de dieu! Mais comment ce file descriptor change après mes fonctions mysql? j'ai rien fait pour ca!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 7
    Points : 15
    Points
    15
    Par défaut
    C'est bon j'ai trouvé, la variable MYSQL * mysql était passée par adresse comme ceci: connectMe(&mysql). Le & provoquait une corruption au niveau du new_fd apparement...

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

Discussions similaires

  1. lire une ligne d'un file descriptor
    Par Pitou5464 dans le forum Réseau
    Réponses: 4
    Dernier message: 30/10/2006, 16h13
  2. pb file descriptor
    Par aimad41 dans le forum C
    Réponses: 2
    Dernier message: 23/10/2006, 18h16
  3. Coment obtenir le nombre total de file descriptor ouvert?
    Par homeostasie dans le forum Réseau
    Réponses: 7
    Dernier message: 21/06/2006, 11h55
  4. Bad file descriptor avec un read()
    Par je®ome dans le forum C
    Réponses: 2
    Dernier message: 04/04/2006, 19h30
  5. Etrange "Bad file descriptor"
    Par amauryxiv dans le forum Langage
    Réponses: 23
    Dernier message: 01/02/2006, 03h20

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