эй спасибо большое, не знал искать SO_REUSEADDR. теперь, когда я делаю информацию, в изобилии. Спасибо!

я есть небольшой TCP-сервер, который прослушивает порт. Во время отладки я обычно использую CTRL-C сервер, чтобы завершить процесс.

В Windows я могу быстро перезапустить службу, и сокет может быть восстановлен. В Linux мне нужно подождать несколько минут, прежде чем bind () вернется с успехом

Когда bind () не работает, он возвращает errno = 98, адрес используется.

Я хотел бы лучше понять различия в реализациях. Конечно, Windows более дружественна для разработчика, но я сомневаюсь, что Linux делает «неправильные вещи».

Я думаю, что Linux ждет, пока все возможные клиенты не обнаружат, что старый сокет сломан, прежде чем разрешить создание новых сокетов. Единственный способ сделать это - подождать, пока они истечут.

Есть ли способ изменить это поведение во время разработки в Linux? Я надеюсь дублировать способ, которым Windows делает это

Ответы на вопрос(1)

Ваш ответ на вопрос