У меня есть несколько IP-адресов и отправка им UDP-сообщения.
for ip in transmit_ip:
socket = socket.socket(socket.INET, socket.SOCK_DGRAM)
if ip.endswith(".255"):
socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
socket.sendto(message, (ip, transmit_port))
socket.close()
Я хотел создать один сокет и отправить на все IP-адреса через этот сокет.(С УДП).Вот так:
socket = socket.socket(socket.INET, socket.SOCK_DGRAM)
for ip in transmit_ip:
if ip.endswith(".255"):
socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST,1)
socket.sendto(message, (ip, transmit_port))
socket.close()
Но дело в том, что после получения широковещательного адреса для сокета будет установлена опция socket.SO_BROADCAST
.
В первом случае мы закрываем и воссоздаемсокет для каждого IP-адреса, поэтому он не будет влиять на другие IP-адреса.
Есть ли способ отменить параметры сокета?