Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Invité régulier
    Homme Profil pro Michaël Vandycke
    Développeur informatique
    Inscrit en
    décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Nom : Homme Michaël Vandycke
    Localisation : Belgique

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

    Informations forums :
    Inscription : décembre 2011
    Messages : 5
    Points : 6
    Points
    6

    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 :
    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
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2011
    Messages
    14
    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 : 14
    Points : 23
    Points
    23

    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
    Invité régulier
    Homme Profil pro Michaël Vandycke
    Développeur informatique
    Inscrit en
    décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Nom : Homme Michaël Vandycke
    Localisation : Belgique

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

    Informations forums :
    Inscription : décembre 2011
    Messages : 5
    Points : 6
    Points
    6

    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
    Invité régulier
    Homme Profil pro Michaël Vandycke
    Développeur informatique
    Inscrit en
    décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Nom : Homme Michaël Vandycke
    Localisation : Belgique

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

    Informations forums :
    Inscription : décembre 2011
    Messages : 5
    Points : 6
    Points
    6

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •