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 :

erreurs compilations client.c


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 71
    Points : 38
    Points
    38
    Par défaut erreurs compilations client.c
    Bonjour à tous,
    Je m'initie aux sockets avec le tutoriel de developpez.net et j'ai pour mon client le même code que celui du tuto (partie TCP) :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>
    #include <unistd.h>
    #include <netdb.h>
    #define INVALID_SOCKET -1
    #define SOCKET_ERROR -1
    #define closesocket(s) close(s)
    typedef int SOCKET;
    typedef struct sockaddr_in SOCKADDR_IN;
    typedef struct sockaddr SOCKADDR;
    typedef struct in_addr IN_ADDR;
     
     
    SOCKET sock = socket(AF_LOCAL, SOCK_STREAM, 0);
    if(sock == INVALID_SOCKET)
    {
        perror("socket()");
        exit(errno);
    }
     
    struct hostent *hostinfo = NULL;
    SOCKADDR_IN sin = { 0 }; 
    const char *hostname = "localhost";
     
    hostinfo = gethostbyname(hostname);
    if (hostinfo == NULL)
    {
        fprintf (stderr, "Unknown host %s.\n", hostname);
        exit(EXIT_FAILURE);
    }
     
    sin.sin_addr = *(IN_ADDR *) hostinfo->h_addr;
    sin.sin_port = htons(PORT);
    sin.sin_family = AF_INET;
     
    if(connect(sock,(SOCKADDR *) &sin, sizeof(SOCKADDR)) == SOCKET_ERROR)
    {
        perror("connect()");
        exit(errno);
    }
     
    char buffer[1024];
     
    if(send(sock, buffer, strlen(buffer), 0) < 0)
    {
        perror("send()");
        exit(errno);
    }
     
    int n = 0;
     
    if((n = recv(sock, buffer, sizeof buffer - 1, 0)) < 0)
    {
        perror("recv()");
        exit(errno);
    }
     
    buffer[n] = '\0';
     
     
    closesocket(sock);
    et gcc me renvoie :
    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
    client.c:16:1: erreur: un élément de l'initialisation n'est pas une constante
    client.c:17:1: erreur: expected identifier or(’ before ‘if’
    client.c:24:13: attention : built-in function ‘sin’ declared as non-function [enabled by default]
    client.c:27:1: attention : la définition de données n'a pas de type ni de classe de stockage [enabled by default]
    client.c:27:1: erreur: conflicting types for ‘hostinfo’
    client.c:23:17: note: previous definition of ‘hostinfo’ was here
    client.c:27:12: attention : initialization makes integer from pointer without a cast [enabled by default]
    client.c:27:1: erreur: un élément de l'initialisation n'est pas une constante
    client.c:28:1: erreur: expected identifier or(’ before ‘if’
    client.c:34:4: erreur: expected ‘=’, ‘,’, ‘;’, ‘asmor ‘__attribute__’ before ‘.’ token
    client.c:35:4: erreur: expected ‘=’, ‘,’, ‘;’, ‘asmor ‘__attribute__’ before ‘.’ token
    client.c:36:4: erreur: expected ‘=’, ‘,’, ‘;’, ‘asmor ‘__attribute__’ before ‘.’ token
    client.c:38:1: erreur: expected identifier or(’ before ‘if’
    client.c:46:1: erreur: expected identifier or(’ before ‘if’
    client.c:54:1: erreur: expected identifier or(’ before ‘if’
    client.c:60:1: attention : la définition de données n'a pas de type ni de classe de stockage [enabled by default]
    client.c:60:1: erreur: variably modified ‘buffer’ at file scope
    client.c:60:1: erreur: conflicting types for ‘buffer’
    client.c:44:6: note: previous declaration of ‘buffer’ was here
    client.c:60:1: erreur: initialisation invalide
    client.c:63:1: attention : la définition de données n'a pas de type ni de classe de stockage [enabled by default]
    client.c:63:1: attention : noms de paramètres (sans type) dans la déclaration de fonction [enabled by default]

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ton code doit se situer à l'intérieur d'une fonction.
    Seules les lignes #include, typedef, et déclarations peuvent se trouver en dehors.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 71
    Points : 38
    Points
    38
    Par défaut
    Merci de résoudre pour mon pitoyable esprit cette erreur immonde...

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 599
    Points
    23 599
    Par défaut
    Au fait, si c'est le même problème qu'ici, merci de rester le même fil.

    Fais-nous savoir si c'est la suite du même problème pour que l'on puisse fusionner les discussions le cas échéant.

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

Discussions similaires

  1. Erreurs compilation client
    Par izioto dans le forum Services Web
    Réponses: 1
    Dernier message: 06/03/2008, 00h04
  2. [FreePascal] Erreur compilation ou défaut Dev-Pascal ?
    Par molesqualeux dans le forum Free Pascal
    Réponses: 5
    Dernier message: 27/12/2004, 11h00
  3. [Débutant]Erreur compilation !
    Par gandalf_le_blanc dans le forum AWT/Swing
    Réponses: 23
    Dernier message: 30/08/2004, 15h23
  4. Trop de message d'erreurs: compilation KO
    Par jeannot27 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/01/2004, 17h45
  5. Erreur compilation DX8.1 VC++ 6
    Par d.vidal dans le forum DirectX
    Réponses: 1
    Dernier message: 10/09/2003, 10h04

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