Qual è il modo consigliato di chiudere "garbatamente" un socket TCP?Chiudere correttamente una presa TCP
Ho imparato che close() ing prima della lettura() di tutti i dati rimanenti nel mio buffer host può causare problemi per l'host remoto (potrebbe perdere tutti i dati nel suo buffer di ricezione che è stato accodato, ma non è ancora stato letto dalla sua domanda). È corretto?
Quale sarebbe un buon approccio per evitare quella situazione? C'è un modo per dire all'API che non mi interessa davvero che i dati vengano persi a causa della mia ignoranza di eventuali dati bufferizzati rimanenti e della chiusura del socket?
Oppure devo considerare il problema a livello di protocollo dell'applicazione e utilizzare una sorta di segnale "fine della trasmissione" implicito o esplicito per far sapere all'altra parte che è sicuro chiudere un socket per la lettura?
In che lingua? – Kiril
prese Berkeley; Sto usando C, ma mi interessa il concetto generale. – lxgr