Обычно, если приложение закрывает сокет, его удаленный узел также замечает, что закрытие.Следовательно, вам не нужно вызывать close () с обеих сторон.Однако иногда из-за проблем с сетью вы можете не получать уведомления, когда удаленный узел закрывает соединение.Чтобы обойти эту проблему, рекомендуется периодически отправлять некоторые сообщения, и тогда вы обнаружите неожиданное закрытие раньше.
Обратите внимание, что SO_KEEP_ALIVE здесь мало поможет, потому что для большинства операционных систем, потому что по умолчанию сохраняетсявремя очень долго.