Какие ошибки в неблокируемом сокете не приводят к его закрытию?
Какие ошибки неблокируемого сокета можно игнорировать в сетевом программировании
Вообще это два разных вопроса. Никакие ошибки не приводят к закрытию сокета, закрыть его можно только явно вызвав close.
Игнорировать ошибки тоже не стоит, потому что они говорят о том, что случилось с данными переданными в send или полученными из recv. А именно, EAGAIN / EWOULDBLOCK говорят о том, что данные не были посланы или приняты, но с сокетом и с соединением (если есть) всё нормально. Кроме того, send и recv возвращают количество реально отправленных/полученных данных, и оно может быть меньше, чем было запрошено. Это не ошибка, а нормальная ситуация, её обязательно надо обрабатывать правильно.
Почти все остальные ошибки говорят о том, что соединение оборвано и сокет остаётся только закрыть.