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 :

socket : write() et fgets


Sujet :

Réseau C

  1. #1
    Membre éclairé 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
    Par défaut socket : write() et fgets
    Bonsoir,

    voici la fonction utilisée pour remplir une variable avec le nom d'un abonné afin de l'envoyer par un socket
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgets (abonne, 30, stdin);
    Cela a l'air de fonctionné, je suis connecté, et je peux entrer des caractères ...
    Mais comment puis je arreter l'encodage poru que le nom encodé soit pris en compte par cette focntion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write(sc,  abonne, strlen(abonne));
    La touche "enter" ne provoque pas l'arret de l'encodage
    Que devrais je faire ?

    merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je ne vois pas ce que tu veux dire par "arrêter l'encodage"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé 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
    Par défaut
    ok, j'essaie d'envoyer un nom ...
    Dans ce cas ci , le nom est zaski ...
    Don dès que le socket est connecté, un prompt me demande d'entrer le nom à envoyer, j'encode le nom et je valide avec la touche "enter" ... Il passe alors à la ligne alors que je voudrais sortir de la fonction fgets() afin que la fonction write() prenne le pas en utilisant la variable abonné maintenant remplie par fgets() ...
    Suis je assez clair ?

  4. #4
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    Il s'agit probablement de la saisie. Il faut deviner.
    Essayes de lire et de comprendre ce que fait le code qui suit, avant de le compiler.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <stdio.h>
    #include <string.h>
     
    int main()
    {
      char str[255];
      while (strcmp(fgets(str, 255, stdin),"\n")!=0)
      {
        printf(str);
      }
     
      return 0;
    }

  5. #5
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Par défaut
    On a posté en même temps mais ça tient toujours.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par horkets
    ok, j'essaie d'envoyer un nom ...
    Dans ce cas ci , le nom est zaski ...
    Don dès que le socket est connecté, un prompt me demande d'entrer le nom à envoyer, j'encode le nom et je valide avec la touche "enter" ...
    Ah, OK, une saisie quoi...
    Il passe alors à la ligne alors que je voudrais sortir de la fonction fgets() afin que la fonction write() prenne le pas en utilisant la variable abonné maintenant remplie par fgets() ...
    Suis je assez clair ?
    Euh, je suis obligé de réponde ? Qu'est-ce qui ne va pas avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       char ligne[256];
       fgets (ligne, sizeof ligne, stdin);
       write (socket, ligne, strlen (ligne));

  7. #7
    Membre éclairé 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
    Par défaut
    CQFD, sorry pour cette question debile
    En tous les cas,


    Je teste cela ce soir et n'oublierai pas d'indiquer le flag si resolu ...

  8. #8
    Nouveau candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Par défaut write stdin
    Bonjour, je profite de se sujet pour poser une question.
    J'essai de coder une couche graphique à mplayer.
    Je créer un processus fils à mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    pid = fork();
    if (pid == 0) {
      /* On est dans le fils */
      execl("mplayer", "-slave", "-quiet", "pi.avi");
    } else {
      /* On est dans le pére */
      /* Attente d'une entrée clavier (scanf, getchar, ...) */
      ...
      /* Je ne sais pas quoi faire ici */
      ICI : je  voudrais ecrire sur stdin de mplayer pour pouvoir le commander.
    }
    Merci de vos réponse.
    Cordialement.

  9. #9
    Membre chevronné Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416

  10. #10
    Nouveau candidat au Club
    Inscrit en
    Février 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 2
    Par défaut
    Merci beaucoup.

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

Discussions similaires

  1. [JMeter] Socket Write Error / Connection reset by peer ..
    Par quentinbenyahia dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 28/05/2015, 17h29
  2. Réponses: 0
    Dernier message: 27/11/2014, 15h30
  3. Telechargement PDF : socket write error
    Par zilis dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 04/06/2014, 12h55
  4. script socket write
    Par porcky dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 21/01/2014, 13h05
  5. write() dans une socket.. unix
    Par slack dans le forum Réseau
    Réponses: 5
    Dernier message: 18/12/2002, 20h42

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