Во время работы с библиотекой сокетов в Python 2.7 я столкнулся с проблемой получения кода, работающего так, как я хочу. Мне бы хотелось, чтобы код перебирал диапазон IP-адресов и открывал сокет-соединение для каждого ip в диапазоне. Если время соединения истекло, распечатайте ошибку и перейдите к следующему адресу в диапазоне. Я использую цикл for, чтобы выполнить это, однако всякий раз, когда сокет встречает тайм-аут, цикл прерывается. Что я делаю неправильно? Я предполагаю, что это способ обработки исключения. Кто-нибудь может указать мне правильное направление?
from IPy import IP
ip = IP(sys.argv[1])
for x in ip:
print("Connecting to: {0}".format(str(x)))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
svr = (str(x), 25)
s.connect(svr)
if socket.timeout:
print("Timed out.")
data = s.recv(2048)
print(data)
continue
print("Range Completed.")
sys.exit(1)