Код: Выделить всё
OSError: [Errno 48] Address already in use
Я' Я пытался создать MRE, чтобы воспроизвести ошибку:
Код: Выделить всё
import time
import whatismyip
EXPECTED_IP = "123.123.123.123"
while True:
current_ip_address = whatismyip.whatismyipv4()
if current_ip_address != EXPECTED_IP:
raise Exception
time.sleep(0.1) # simulate accessing IP sensitive API for info A
current_ip_address = whatismyip.whatismyipv4()
if current_ip_address != EXPECTED_IP:
raise Exception
time.sleep(0.1) # simulate accessing IP sensitive API for info B
current_ip_address = whatismyip.whatismyipv4()
if current_ip_address != EXPECTED_IP:
raise Exception
time.sleep(0.1) # simulate accessing IP sensitive API for info C
Код: Выделить всё
ResourceWarning: unclosed
В реальном коде я пытался перехватить OSError и повторите попытку Whatismyip.whatismyipv4(), но это просто генерирует ту же ошибку.
Ошибка возникает в последней строке этого блока кода, который я извлек из пакет:
Код: Выделить всё
SOURCE_IP = '0.0.0.0'
SOURCE_PORT = 54320
sockObj = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sockObj.settimeout(2)
sockObj.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sockObj.bind((SOURCE_IP, SOURCE_PORT))
Код: Выделить всё
sockObj.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Я использую Python 3.10.8 в MacOS 13.2.1.
Подробнее здесь: https://stackoverflow.com/questions/761 ... -in-a-loop