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) :
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
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);
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 =, ,, ;, asm or __attribute__ before . token client.c:35:4: erreur: expected =, ,, ;, asm or __attribute__ before . token client.c:36:4: erreur: expected =, ,, ;, asm or __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]
Partager