Похоже, ваша программа прослушивает сокет. Обычно, когда ваша программа выходит, ОС закрывает все сокеты, которые могут быть открыты (включая сокеты прослушивания). Однако для прослушивания сокетов ОС обычно резервирует порт на некоторое время (несколько минут) после выхода из программы, чтобы она могла обрабатывать любые невыполненные попытки подключения. Вы можете заметить, что если вы ненормально выключили свою программу, а затем вернетесь через некоторое время, она просто запустится.
Если вы хотите избежать этого времени задержки, вы можете использовать setsockopt()
для настройки сокета с параметром SO_REUSEADDR. Это говорит ОС, что вы знаете, что можно повторно использовать один и тот же адрес, и вы не столкнетесь с этой проблемой.
Вы можете установить эту опцию в Java, используя метод ServerSocket.setReuseAddress(true)
.