salve a tutti

ho iniziato da poco a studiare i socket in linguaggio C. E già nascono, non tanto problemi, ma piuttosto curiosità:

dopo la creazione del socket e tutto il resto, ci sarà la parte di codice dedicata al send() e recv() dei dati: cioè quando l'host sarà in attesa con la recv():

codice:
//var( alcune, solo quelle necessarie a comprendere il codice )
  SOCKET sock_desc;
  SOCKET new_sock_desc;
  SOCKADDR_IN client_addr;
  int recv_byte;
  int length_sock= sizeof( SOCKADDR_IN );
  char buffer[1024];

...

while( 1 )
  {
    new_sock_desc= accept( sock_desc, (SOCKADDR*) &client_addr, &length_sock );


    printf("connected from %s port %d", inet_ntoa(client_addr.sin_addr), ntohs(client_addr.sin_port) );
    send( new_sock_desc, "hello world!\n", 13, 0 );


    recv_byte= recv( new_sock_desc, buffer, 1024, 0 );


    while( recv_byte > 0 )
    {
      printf("bytes received: %d\n", recv_byte );
      recv_byte= recv( new_sock_desc, buffer, 1024, 0 );
    }


    close( new_sock_desc );
  }
a questo punto, se il client chiude la connessione con l'host come faccio a capire se il socket_client è stato chiuso o no( dal punto di vista dell'host ovviamente )?

per esempio stampare: "socket closed"

grazie in anticipo