У меня есть небольшой TCP-сервер, который прослушивает порт.Во время отладки я обычно использую CTRL-C сервер, чтобы убить процесс.
В Windows я могу быстро перезапустить службу, и сокет может быть восстановлен.В Linux мне нужно подождать несколько минут, прежде чем bind () вернется с успехом
При сбое bind () возвращается errno = 98, адрес используется.
Я бы хотел лучшепонять различия в реализации.Конечно, Windows более дружественна для разработчика, но я сомневаюсь, что Linux делает «неправильные вещи».
Мое лучшее предположение - Linux ждет, пока все возможные клиенты не обнаружат, что старый сокет сломан, прежде чем разрешить создание новых сокетов.Единственный способ сделать это - подождать, пока они истечут
. Есть ли способ изменить это поведение во время разработки в Linux?Я надеюсь дублировать способ, которым Windows делает это