если мы вызываем системный вызов close на
неблокирующий сокет возвращает
немедленно
Гнездо всегда закрыто: соединение может все еще выполнять запись в одноранговый узел. Но ваш вопрос заключает в себе ошибку: если вы вызываете close () для любого сокета, он немедленно возвращается. Закрытие и запись в сокет происходит асинхронно. Вы можете контролировать это с помощью SO_LINGER согласно другому ответу, хотя я подозреваю, что это применимо только к режиму блокировки. Возможно, вам следует перевести сокет обратно в режим блокировки, прежде чем закрывать его с положительным SO_LINGER, если это то, что вам нужно сделать.