Programmation socket

Signaler
Messages postés
6
Date d'inscription
dimanche 19 octobre 2008
Statut
Membre
Dernière intervention
27 avril 2010
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
salut,
j'ai un ptite application de programmation socket de chate client/ serveur sous lunix en C mais il y a un erreur je comprid pas cette erreur aidez moi svp
l'application client.c:



#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<sys/types.h>
#include<netdb.h>
#include<string.h>
#include
#include
#include<netinet/in.h>
#include
#include<errno.h>
const int port = 7000 ;
const char * message = "bonjour" ;
int main(int argc, char ** argv)
{
        struct sockadder_in sock_host;
        int sock ;
        /* ouverture d'une sockeet*/
        sock = socket(AF_INET, SOCK_STREAM, 0);
        /* on cre l'adresse de la machine distante */
        memset(& sock_host, '\0', sizeof (sock_host)) ;
        sock_host.sin_family = AF_INET ;
        sock_host.sin_port = hotons(port) ;
        bzero(&(sock_host.sin_zero), 8) ;
        inet_aton("192.168.1.10", & sock_host.sin_addr);
        /* on demande un connection sur l'adresse distante */
        connect(sock, (struct sockaddr *) & sock_host, sizeof(sock_host)) ;
        /* on envoi le message sur le  serveur */
        write(sock, message, strlen(message)) ;
        /* on ferme la socket */
        close(sock) ;
        return 0 ;
}

l'erreur qui a afficher par le compilatuer est :

client.c: In function ‘main’:
client.c:16: error: storage size of ‘sock_host’ isn’t known
aidez moi svp c'est urgent et merci

1 réponse

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Il te dit qu'il ne connais pas la taille de sock_host que tu as déclaré comme struct sockadder_in.
Pour essayer de comprendre, il faudrait fouiner dans les headers que tu inclus pour essayer de comprendre le souci.

Mais Tu peux probablement t'en sortir en lui donnant simplement le type.
memset(& sock_host, '\0', sizeof (struct sockadder_in)) ;