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

C Discussion :

problème d'envoi de texte entre clients


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut problème d'envoi de texte entre clients
    Bonjour,

    Voila j'aissaie de réaliser un chat entre clients , mais y'a probleme d'affichage du text envoyer entre les clients , affichage mot par mot et saute de lignes

    client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    while(1)
           {
    //procedure pour envoi du text        
            cout << "=>: ";
            cin >> msg;
             memset(buffer, '\0', sizeof(buffer));
             sprintf(buffer, "%s", msg);   
              send(client, buffer, sizeof(buffer), 0);
     
           }
    code pour recevoir le text coté client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(1){
         memset(MSG,'\0',sizeof(MSG));
         recv(client,MSG,sizeof(MSG),0);
         printf("=> %s \n",MSG);
              }
    donc si j'aissaie d'envoyer la phrase "Bonjour cava ?"

    du coté de receveur l'affichage est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    =>Bonjour
    =>cava
    =>?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2006
    Messages : 107
    Points : 124
    Points
    124
    Par défaut
    Bonsoir,

    cin, cout, c'est du c++...
    Je suppose que msg, c'est une string ? Parce que si c'est le cas, sprintf attend un pointeur sur une chaine de caractères : un char*, et donc il faudrait msg.c_str().

    Sinon tes memset, ne servent à rien, sprintf écrit le '\0' final.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    oui, mais comme j'ai dit le message passe bien entre les clients,
    y'a seulement probleme d'affichage ou je sais pas quoi

    c'est comme si la fonction send() envoie mot par mot

    "Bonjour" apres "cava" apres "?"
    donc le clientx reçoi , "Bonjour apres y'a une saute de ligne apres "cava" ..ect

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Citation Envoyé par Doulim Voir le message
    oui, mais comme j'ai dit le message passe bien entre les clients,
    y'a seulement probleme d'affichage ou je sais pas quoi

    c'est comme si la fonction send() envoie mot par mot

    "Bonjour" apres "cava" apres "?"
    donc le clientx reçoi , "Bonjour apres y'a une saute de ligne apres "cava" ..ect
    cin et cout: c'est du C++

    A mon avis le problème provient de cin qui considère l'espace comme un symbole de séparation (relis la doc ou affiche le message envoyé par send).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while(1) {
      //procedure pour envoi du text        
      cout << "=>: ";
      cin >> msg;
      memset(buffer, '\0', sizeof(buffer));
      sprintf(buffer, "%s", msg);   
      cout << "send: " << buffer << endl;
      send(client, buffer, sizeof(buffer), 0);
    }

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par jowo Voir le message

    A mon avis le problème provient de cin qui considère l'espace comme un symbole de séparation (relis la doc ou affiche le message envoyé par send).
    effectivement, tu as raison, le probleme vient du cin ... je lai remplacer par gets() et là, ça marche tres bien

    Merci beaucoup .

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Doulim Voir le message
    effectivement, tu as raison, le probleme vient du cin ... je lai remplacer par gets() et là, ça marche tres bien
    Attention, gets() est une fonction dangereuse. Préférer fgets().

    http://emmanuel-delahaye.developpez....e=Page6#LXXXII

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

Discussions similaires

  1. envoie de mail entre client et serveurs
    Par amira88 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 16/10/2009, 13h03
  2. problème lors d'un dialogue entre client et serveur
    Par Dave62 dans le forum Réseau
    Réponses: 3
    Dernier message: 10/12/2008, 09h24
  3. Envoi de xml entre client et serveur
    Par metalcoyote dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2007, 21h50
  4. Problème d'envoie de text avec les sockets
    Par Coussati dans le forum Web & réseau
    Réponses: 6
    Dernier message: 16/09/2005, 10h26
  5. [SAX] Problème SAX lecture du texte entre les balises
    Par BernardT dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 07/07/2005, 17h24

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