forking
This commit is contained in:
parent
5c17cf7f6d
commit
183cf993e4
1 changed files with 37 additions and 25 deletions
62
tsock_v4.c
62
tsock_v4.c
|
|
@ -402,32 +402,44 @@ int main (int argc, char **argv) {
|
||||||
|
|
||||||
printf("PUITS: connexion acceptée\n");
|
printf("PUITS: connexion acceptée\n");
|
||||||
|
|
||||||
if (source == 1) {
|
switch(fork()) {
|
||||||
//envoi
|
case -1:
|
||||||
for(i=0; i<nb_message; i++) {
|
printf("erreur durant le fork\n");
|
||||||
printf("SOURCE: Envoi ");
|
exit(1);
|
||||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
break;
|
||||||
afficher_message(pmesg, lg_mesg, (i+1));
|
case 0:
|
||||||
send(sock_bis, pmesg, lg_mesg, 0);
|
close(sock);
|
||||||
}
|
if (source == 1) {
|
||||||
} else {
|
//envoi
|
||||||
//reception
|
for(i=0; i<nb_message; i++) {
|
||||||
lg_max=lg_mesg;
|
printf("SOURCE: Envoi ");
|
||||||
if (nb_message == -1) {
|
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||||
count = 0;
|
afficher_message(pmesg, lg_mesg, (i+1));
|
||||||
while ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
send(sock_bis, pmesg, lg_mesg, 0);
|
||||||
count++;
|
}
|
||||||
printf("PUITS: Reception ");
|
} else {
|
||||||
afficher_message(pmesg, lg_mesg, count);
|
//reception
|
||||||
}
|
lg_max=lg_mesg;
|
||||||
} else {
|
if (nb_message == -1) {
|
||||||
for (int k=0; k<nb_message; k++) {
|
count = 0;
|
||||||
if ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
while ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
||||||
printf("PUITS: Reception ");
|
count++;
|
||||||
afficher_message(pmesg, lg_mesg, (k+1));
|
printf("PUITS: Reception ");
|
||||||
|
afficher_message(pmesg, lg_mesg, count);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int k=0; k<nb_message; k++) {
|
||||||
|
if ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
||||||
|
printf("PUITS: Reception ");
|
||||||
|
afficher_message(pmesg, lg_mesg, (k+1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
}
|
default:
|
||||||
|
close(sock_bis);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue