Ciao a tutti, ho il seguente problema:

sto sviluppando un applicazione "ftp" semplice (e sottolineo semplice data la mia inesperienza). Fra i requisiti di questa applicazione c'è il fatto che ogni qual volta un client si connette al server il server deve generare un figlio (tramite fork() ) che ne gestisca le richieste;

tuttavia il client deve prevedere un comando "bye" che chiude la connessione col server e chiude anche il server!

io ho strutturato il client in questo modo:
codice:
int main(){
       creo il socket
       inizializzo il socket
       mi connetto al server

while(1){
       ricevo un comando
       lo invio al server
       eseguo la parte di comando che spetta al client
       }
    
       chiudo il socket
       exit(0);
}
Il server invece è fatto cosi:

codice:
int main() {
          creo socket
          inizializzo socket e porte
          creo coda di backlog
while(1){
          accetta la connessione

          fork()
          if (pid == 0)
          close (socket padre)
     while(1){ 
          aspetta un comando 
          controlla che cosa chiede ed eseguilo
          }
     }
close socket_padre
exit(0);
}
tuttavia se inserisco una funzione "bye" nel server dopo la fork è chiaro che questa mi chiuderà il figlio mentre io devo chiudere tutto!!

suggerimenti?
grazie mille a tutti :-)