Существует причина, по которой сокеты не используются в течение некоторого времени после их закрытия.
Сокет состоит из 4-х кортежей, Source и Dest Port, Source и Dest IP.
Допустим, вы принудительно закрыли сокет, когда клиент был занят отправкой данных на сервер.
Вы ждете 5 секунд и снова открываете сервер с тем же портом, и тот же клиент отправляет данные в один и тот же кортеж 4, сервер получит пакеты с неправильными порядковыми номерами tcp, и соединения получат сброс.
Вы стреляете себе в ногу:)
Вот почему соединения имеют статус time_wait в течение 2-4 минут (в зависимости от дистрибутива), пока они не могут быть снова использованы.
Просто чтобы прояснить, я говорю о розетках, а не только о прослушивании порта TCP.