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 :

pb lecture chaine de caractere


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 149
    Par défaut pb lecture chaine de caractere
    Dans le cadre d'une application client/serveur, j'aimerais que ce qu'écris le serveur soit transmis au client. Seulement, il n'y a que le premier caractère qui est trasmis (j'ai essayé avec scanf et fget)
    qqun aurait une idée ?

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    montre la partie du code incriminée car c'est un peu obscur la ;S

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 149
    Par défaut
    voici un extrait du code du serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
            while(1) {  
                sin_size = sizeof(struct sockaddr_in);
                if ((new_fd = accept(sockfd, (struct sockaddr *)&their_addr,&sin_size)) == -1) {
                    perror("accept");
                    continue;
                }
                printf("serveur: Reçu connection de %s\n", inet_ntoa(their_addr.sin_addr));
    		pid = fork();
                if (pid==0)  /* processus fils */
    	    {
    			printf("Saisie du message\n");
    			scanf("%s",toto);
     
    			int len, bytes_sent;
         			len = strlen(toto);
        			bytes_sent = send(new_fd, toto, len, 0);
                }
    		exit(0);
            }

    et un extrait du code du client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ((numbytes=recv(sockfd, buf, sizeof(buf), 0)) == -1) {
                perror("erreu recv");
                exit(1);
            }
     
            buf[numbytes] = '\0';
     
            printf("Reçu: %s",buf);

    Voilà, merci pour votre aide !

  4. #4
    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 coco21
    voici un extrait du code du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    			scanf("%s",toto);
     
    			int len, bytes_sent;
         			len = strlen(toto);
        			bytes_sent = send(new_fd, toto, len, 0);
    Que vaut 'bytes_sent' ?
    et un extrait du code du client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ((numbytes=recv(sockfd, buf, sizeof(buf), 0)) == -1) {
                perror("erreu recv");
                exit(1);
            }
     
            buf[numbytes] = '\0';
     
            printf("Reçu: %s",buf);
    Comment est défini buf ?

    Si c'est un tableau de char on devrait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       numbytes = recv (sockfd, buf, sizeof buf - 1, 0)
       if (numbytes > 1)
       {
            buf[numbytes] = '\0';
            printf("Reçu: %s",buf); 
       }
    Tout cela est expliqué ici...

    http://emmanuel-delahaye.developpez....eaux.htm#texte

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. lecture fichier et comparaison chaines de caracteres
    Par john123 dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 08/05/2007, 11h38
  3. Réponses: 2
    Dernier message: 22/02/2007, 15h44
  4. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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