За исключением некоторых редких и необычных обстоятельств, ваши соединения работают правильно и сами закрываются (или, точнее, будут автоматически закрываться стеком TCP операционной системы вашего компьютера.)
Проблема, с которой вы сталкиваетесь, заключается в том, что сокет, лежащий в основе соединения, будет закрыт только после того, как все его данные будут доставлены и подтверждены, а также после истечения периода TIME_WAIT. Это хорошо определенное и совершенно нормальное поведение.
Для объяснения того, почему это требуется, см.
Но суть в следующем: не беспокойтесь о розетках; это ответственность вашей операционной системы.