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 :

Serveur TCP et while


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
    Février 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 60
    Par défaut Serveur TCP et while
    Bonjour à tous,

    je rencontre un problème dans le while sur mon serveur : je n'arrive pas à spéficier qu'une fois la connexion établie avec un client, il faut lire une requête jusqu'à lire une chaîne contenant par exemple une ligne avec seulement un saut de ligne '\n', et de repondre par "au revoir", et fermer la connexion.

    Voici un peu la tête 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main(int argc, char**argv)
    {
       int socket_serveur,socket_client,n;
       struct sockaddr_in servaddr,cliaddr;
       socklen_t clilen;
       char mesg[1000];
     
       socket_serveur=socket(AF_INET,SOCK_STREAM,0);
     
       bzero(&servaddr,sizeof(servaddr));
       servaddr.sin_family = AF_INET;
       servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
       servaddr.sin_port=htons(32000);
       bind(socket_serveur,(struct sockaddr *)&servaddr,sizeof(servaddr));
     
       listen(socket_serveur,1024);
     
       while(1)
       {
          clilen=sizeof(cliaddr);
          socket_client = accept(socket_serveur,(struct sockaddr *)&cliaddr,&clilen);     
          n = read(socket_client,mesg,1000,0,(struct sockaddr *)&cliaddr,&clilen);
          if(strcmp(mesg, "\n") == 0){
          	write(socket_client,"au revoir\n",10,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));
            shutdown(socket_serveur,2);
            close (socket_serveur);
            shutdown(socket_client,2);
            close(socket_client); 
    	//exit(1);
          }  
          mesg[n] = 0;   
          printf("%s",mesg);  
       } 
    }
    Si vous avez une idée de la façon d'implémenter cela, merci.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    La faute est dans le strcmp(). Tu compares ta chaine recue (depuis le début de la chaine recue) avec "\n". En fait, il faut rechercher une occurrence de "\n" dans ta chaine recue et pour cela, il faut utiliser strstr() qui recherche une chaine dans une autre chaine.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 60
    Par défaut
    merci pour l'indication

Discussions similaires

  1. serveur TCP
    Par dirty_boy dans le forum Développement
    Réponses: 5
    Dernier message: 03/02/2006, 13h03
  2. Client Tcp/ Serveur TCP
    Par Phébus dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/07/2005, 16h35
  3. client/serveur tcp/ip en c sous unix
    Par oclone dans le forum Développement
    Réponses: 8
    Dernier message: 19/04/2005, 18h55
  4. Serveur TCP/IP Indy bloquant ?
    Par f6dqm1 dans le forum Web & réseau
    Réponses: 6
    Dernier message: 07/12/2004, 09h08
  5. [Concept]Concept d'un serveur TCP/IP
    Par Zc dans le forum Développement
    Réponses: 8
    Dernier message: 17/01/2003, 17h06

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