Sto arrotolando il mio protocollo applicativo su TCP. Sto usando Linux e C. Mi chiedo se ci sia una sequenza consigliabile per chiudere una connessione socket.
Il client avvierà sempre la chiusura inviando una stringa appositamente creata; dì "CHIUDI". Mi piacerebbe ricevere una sorta di conferma dal server che ha visto la mia richiesta CLOSE, quindi forse ha bisogno di inviare una stringa speciale come "CLOSE_OK".
Ho visto anche le chiamate di sistema close () e shutdown (), ma non sono sicuro di come usarle. Ad esempio, se il client, dopo aver ricevuto "CLOSE_OK", esegue un arresto (OUTPUT) e quindi attende di ricevere una stringa di lunghezza zero? E se il server, dopo aver inviato "CLOSE_OK", emette close () e quindi considera il socket morto?
Spero ci sia una "best practice" su questo argomento che non ho ancora trovato ...
Grazie, Cap