如果我们想从套接字广播信息,我们需要启用SocketOptions.SO_BROADCAST
. 但是,我不明白为什么这是必要的。
我的理解是我们用广播地址设置数据包,就像设置单播地址一样。然后我们只需要通过常规套接字发送它。如果它是 UDP 套接字,那么将在该数据包中添加一个 UDP 头,然后是一个包含接收者 IP 地址的 IP 头(在这种情况下是 形式的广播地址192.168.255.255
),然后(FF:FF:FF:FF)
添加一个 MAC 地址。
我认为路由器将获取数据包并执行广播。我不明白为什么我们需要将 socket 属性设置为SO_BROADCAST
.