bonjour voici mon code si qq1 peut m'aider
qd je compile sous ubuntu g un message erreur de segmentation je pense que c'est le pointeur mais je ne suis pas sur
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
int sock_CS, sock_SC, yes=1, t, tempo;
char buffer[1024];
char *text;
socklen_t longueur;
socklen_t length;
struct sockaddr_in CS;
struct sockaddr_in SC;
char saisie[11];
char tab[14];
char dest[14];
char a,b,c,d,e,f,g,h,i,j,k;
connexion(){
 #if defined (WIN32)
         WSADATA WSAData;
         int erreur = WSAStartup(MAKEWORD(2,2), &WSAData);
     #else
         int erreur = 0;
     #endif
 
    //Création des sockets client->serveur et serveur->client
    sock_CS = socket (AF_INET, SOCK_DGRAM, 0); 
    //printf("Le numéro de socket client -> serveur est %d \n", sock_CS);
    sock_SC = socket (AF_INET, SOCK_DGRAM, 0); 
    //printf("Le numéro de socket serveur -> client est %d \n\n", sock_SC);
 
 
    // Initialisation à zéro des sockets client->serveur et serveur->client
    bzero (&CS, sizeof (CS));
    CS.sin_family = AF_INET;
    CS.sin_addr.s_addr = inet_addr (IP_ADDRESS);
    CS.sin_port = htons(PORT_CS);
    bzero (&SC, sizeof (SC));
    SC.sin_family = AF_INET;
    SC.sin_addr.s_addr = inet_addr (IP_ADDRESS);
    SC.sin_port = htons(PORT_SC);
    //Ecoute du port de communication
    if (bind (sock_CS, (struct sockaddr *)&CS, sizeof (CS)) == -1) {perror ("bind"); close (sock_CS);}
 
    // Récupère les références de l'émetteur
    if (getsockname (sock_CS, (struct sockaddr *)&CS, &length) == -1) {perror ("getsockname"); close (sock_CS);}
 
}
 
envoi() {
    if (sendto (sock_SC, text, strlen(text)+1, 0, (struct sockaddr *)&SC, sizeof(SC)) == -1) {
	perror ("sendto");
	 close (sock_SC);
	}
	printf("Envoi de: %s\n", dest);
}
 
 
main(){
connexion();
//sleep(7);
printf("Le numéro de socket client -> serveur est %d \t\n\n", sock_CS);
//sleep(4);
printf("Le numéro de socket serveur -> client est %d \t\n\n", sock_SC);
//sleep(4);
printf ("La connexion serveur sur la socket %d et le port %d est établie.\t\n\n", sock_CS, ntohs (CS.sin_port));
//sleep(6);
printf("---------------Veuillez patienter quelques secondes.............------------\n\n\n\n");
//sleep(5);
printf("Veuillez saisir votre Pseudo\n");
fflush(stdout);
fgets(saisie,sizeof saisie,stdin);
a=saisie[0]; 
b=saisie[1];
c=saisie[2];
d=saisie[3];
e=saisie[4];
f=saisie[5];
g=saisie[6];
h=saisie[7];
i=saisie[8];
j=saisie[9];
k=saisie[10];
tab[0]='A';
tab[1]='B';
tab[2]='O';
tab[3]= a;
tab[4]= b;
tab[5]= c;
tab[6]= d;
tab[7]= e;
tab[8]=f;
tab[9]=g;
tab[10]=h;
tab[11]=i;
tab[12]=j;
tab[13]=k;
strcpy(dest,tab);
 
printf("le tableau contient %s \n\n ", dest);
strcpy(dest, "");
envoi(dest);
printf("Attente d'acquitement\n");
//for(t=0;t<14;t++){
//do{
 
 
	//envoi(dest);
         printf("Attente d'acquitement\n");
           if (read (sock_CS, buffer, 1024) < 0) printf (RED,"ACK en retard\n");
      // } while
 	(strcmp(buffer,"ACK") != 0);
        printf(GREEN, "Acquittement recu\n\n");
 
//}
 
  // Fermeture de la socket
    if (close(sock_CS) == -1) perror("close");
    else printf("La socket %d est maintenant fermee\n", sock_CS);
    if (close(sock_SC) == -1) perror("close");
    else printf("La socket %d est maintenant fermee\n",sock_SC);
 
    #if defined (WIN32)
          WSACleanup();
 
     #endif
 
//strcpy(dest,tab);
//memset(saisie,0,sizeof saisie);
//memset(dest,0,sizeof dest);
 
}
merci pour votre aide