А, у нас там ещё было отягчающее обстоятельство в виде QNX. И порт (т.е. отдельный процесс) иногда не помирал при переоткрытии сокета, приводя к неприятным ошибкам, но это всё равно было лучше, чем альтернативы почему-то
Вы просто не детектировали это закрытие нормально, и QNX тут ни при чём. Исправляется парой строк, и всё что надо помирает, когда надо.