Возникла следующая проблема: Есть сервер, который создаёт кучу сокетов и ждёт соединений. Данные о параметрах соединений загружаются при старте сервера, создаются сокеты и сервер ждёт. При старте сервер создаёт дочерний процесс. Параметры соединений могут быть изменены, и сервер должен перезапустится: закрыть сокеты, вновь загрузить параметры, вновь создать сокеты.
Вот в чём проблема: если я убиваю дочерний процесс, далее wait(&status); то всё нормально: сокеты вновь создаются и всё работает, но если я не убиваю дочерний процесс, а просто закрываю сокеты, потом их вновь создаю, то вылезает ошибка при вызове bind: perror выводит: Address already in use. То есть порт занят. Но ведь я закрыл сокет! Даже shutdown(sock, SHUT_RDWR) вызвал для него!
Вопрос: как правильно освободить сокет, что бы его можно было сразу же создать, не используя wait