Ho provato fgets ma, mentre con gets strcmp faceva il suo dovere e il programam riconosceva i comandi, ora non li riconosce più. La cosa buffa è che il server remoto (il cui compito è eseguire i comandi che gli invio) riconosce i comandi del sistema (ad esempio "dir", "del", "whoami"...) ma il menu non funziona più e il risultato è "comando non riconosciuto".
Ti posto il codice così magari capisci meglio qual è il problema:
char messaggio[80];
char buffer[10000];
while (1)
{
/* Il Client invia il messaggio al Server */
memset(&messaggio, 0, sizeof(messaggio));
memset(&buffer, 0, sizeof(buffer));
printf("\n>>> ");
fgets(messaggio,80,stdin);
if (!strcmp(messaggio, "shellquit"))
{
send(remoteSocket,messaggio,sizeof(messaggio),0);
break;
}
else if (!strcmp(messaggio, "shellhelp"))
{
printf("Comandi:\n\tshellhelp = Mostra quetso help\n\tshellquit = Termina il programma e chiude la connessione\n");
send(remoteSocket,"whoami",sizeof(messaggio),0);
recv(remoteSocket, buffer, sizeof(buffer), 0);
}
else
{
send(remoteSocket,messaggio,sizeof(messaggio),0);
/* Il Client accetta il messaggio dal Server */
recv(remoteSocket, buffer, sizeof(buffer), 0);
printf("%s \n", buffer);
}
}
Grazie dlela pazienza