Если мы хотим передавать информацию из сокета, нам нужно включить SocketOptions.SO_BROADCAST
. Однако я не понимаю, почему это необходимо.
Насколько я понимаю, мы устанавливаем пакет с широковещательным адресом, точно так же, как и для одноадресного адреса. Тогда нам просто нужно отправить его через обычный сокет. Если его UDP-сокет, то заголовок UDP будет добавлен в этот пакет, а затем заголовок IP, содержащий IP-адрес получателя (в этом случае это широковещательный адрес в форме 192.168.255.255
), а затем MAC-адрес (FF:FF:FF:FF)
.
Я думаю, что маршрутизатор получит пакет и выполнит трансляцию. Я не понимаю, почему нам нужно установить атрибут socket SO_BROADCAST
.