В вашей программе на Python вам нужно вызвать функции shutdown и close для сокета, чтобы ОС знала, что ваша программа больше не использует его, и она освободит сокет, если после вызова этих функций ничто не использует его. Если вам не удастся вызвать эти функции при выходе из вашей программы, вам придется ждать в ОС, чтобы очистить устаревшие выделенные сокеты. Даже если вы принудительно уничтожите приложение, так как ОС по-прежнему не может точно определить, что оно не используется. Таким образом, когда программа умирает и не закрывает сокет должным образом, ОС будет держать ее выделенной в течение некоторого времени, пока не проверит, действительно ли она используется, а если нет, то освобождает его для использования другими программами.
Вот ссылка, которая объяснит функции выключения и закрытия для сокетов в python.
ТАК Ответ