Каков рекомендуемый способ "изящно" закрыть TCP-сокет?
Я узнал, что close() ing перед чтением() всех оставшихся данных в моем буфере хоста может вызвать проблемы для удаленного хоста (он может потерять все данные в своем буфере приема, который был отмечен, но не но он был прочитан его выражением). Это правильно?
Что было бы хорошим подходом, чтобы избежать этой ситуации? Есть ли способ рассказать API о том, что мне не все равно, что данные теряются из-за того, что я игнорирую любые оставшиеся буферизованные данные и закрывая сокет?
Или мне нужно рассмотреть проблему на уровне протокола приложения и использовать какой-то неявный или явный сигнал "конец передачи", чтобы другая сторона узнала, что безопасно закрыть сокет для чтения?