Ответ 1
Вы вызываете connect
в тот же сокет, который вы закрыли. Вы не можете этого сделать.
Что касается docs для close
сказать:
Все будущие операции над объектом сокета не удастся.
Просто переместите s = socket.socket()
(или все, что у вас есть) в цикл. (Или, если хотите, используйте create_connection
вместо того, чтобы делать это в два этапа, что усложняет задачу, а также значение вам не нужно угадывать IPv4 против IPv6 и т.д.)