forking
這個提交存在於:
父節點
5c17cf7f6d
當前提交
183cf993e4
共有 1 個檔案被更改,包括 37 行新增 和 25 行删除
62
tsock_v4.c
62
tsock_v4.c
|
@ -402,32 +402,44 @@ int main (int argc, char **argv) {
|
|||
|
||||
printf("PUITS: connexion acceptée\n");
|
||||
|
||||
if (source == 1) {
|
||||
//envoi
|
||||
for(i=0; i<nb_message; i++) {
|
||||
printf("SOURCE: Envoi ");
|
||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||
afficher_message(pmesg, lg_mesg, (i+1));
|
||||
send(sock_bis, pmesg, lg_mesg, 0);
|
||||
}
|
||||
} else {
|
||||
//reception
|
||||
lg_max=lg_mesg;
|
||||
if (nb_message == -1) {
|
||||
count = 0;
|
||||
while ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
||||
count++;
|
||||
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));
|
||||
switch(fork()) {
|
||||
case -1:
|
||||
printf("erreur durant le fork\n");
|
||||
exit(1);
|
||||
break;
|
||||
case 0:
|
||||
close(sock);
|
||||
if (source == 1) {
|
||||
//envoi
|
||||
for(i=0; i<nb_message; i++) {
|
||||
printf("SOURCE: Envoi ");
|
||||
construire_message(pmesg, (char)((i%26)+97), lg_mesg);
|
||||
afficher_message(pmesg, lg_mesg, (i+1));
|
||||
send(sock_bis, pmesg, lg_mesg, 0);
|
||||
}
|
||||
} else {
|
||||
//reception
|
||||
lg_max=lg_mesg;
|
||||
if (nb_message == -1) {
|
||||
count = 0;
|
||||
while ((lg_mesg=recv(sock_bis, pmesg, lg_max, 0))>0) {
|
||||
count++;
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
載入中…
新增問題並參考