salut tout le monde, j'ai posté mon code dans le forum developpement linux, mais comme il y a eu aucune reponse depuis hier, je suis venu voir les gens d'ici.
voici mon code :
client:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <unistd.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <stdio.h> #define MAX_SEND 100 int main() { int socket_connect, sockaddr_len; struct sockaddr_in sockaddr_connect,merde; char buffer[MAX_SEND]; sockaddr_connect.sin_family = AF_INET; sockaddr_connect.sin_addr.s_addr = inet_addr("127.0.0.1"); sockaddr_connect.sin_port = htons(6668); sockaddr_connect.sin_zero[8]=0; if(socket_connect = socket(AF_INET, SOCK_STREAM, 0) < 0) { printf("Socket creation errror !\n" ); return EXIT_FAILURE; } printf("socket=%d\n",socket_connect); if(connect(socket_connect, (struct sockaddr*)&sockaddr_connect, sizeof(sockaddr_connect)) < 0) { printf("Socket connection error !\n" ); perror("erreur"); return EXIT_FAILURE; } while(1) { printf("send>" ); scanf("%s", &buffer); write(socket_connect, buffer, MAX_SEND); } close(socket_connect); return 0; }
le serveur se lance bel et bien, mais le client me retourne cette erreur, et connect retourne 0 (j'ai lu quelque part que ceci n'est pas un probleme du fait que c'est >0).
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <time.h> #include <errno.h> #define MAX_RECEPT 100 int main(int argc, char* argv[]) { if(argc < 2) { printf("Parameters error !\n" ); return EXIT_FAILURE; } int socket_server, socket_client, server_len, client_len; struct sockaddr_in sockaddr_server, sockaddr_client; char buffer[MAX_RECEPT]; char buff[50]; time_t date; FILE* f = fopen(argv[1], "a" ); if((socket_server = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("Socket creation error !\n" ); return EXIT_FAILURE; } sockaddr_server.sin_family = AF_INET; sockaddr_server.sin_port = htons(6668); sockaddr_server.sin_addr.s_addr = INADDR_ANY; server_len = sizeof(sockaddr_server); client_len = sizeof(sockaddr_client); if(bind(socket_server, (struct sockaddr*)&sockaddr_server, server_len) < 0) { printf("Socket bind error !\n" ); printf("%d\n",errno); perror("erreur :"); return EXIT_FAILURE; } if(listen(socket_server, 10) < 0) { printf("Socket listen error !\n" ); return EXIT_FAILURE; } printf("[~]Waiting connection... \n" ); socket_client = accept(socket_server, (struct sockaddr*)&sockaddr_client, &client_len); printf("[~]Established connection !\n" ); time(&date); fprintf(f, "[!]Established connection at %s\n", ctime(&date)); while(1) { if(read(socket_client, &buffer, MAX_RECEPT) < 0) { printf("Socket read error !" ); return EXIT_FAILURE; } printf("From client : %s\n\n", buffer); fprintf(f, "From client : %s\n", buffer); } close(socket_client); printf("Saving in %s\n", argv[1]); return 0; }
une idee la dessus?
merci d'avance.
Partager