ソケットから情報をブロードキャストする場合は、SocketOptions.SO_BROADCAST
を有効にする必要があります。しかし、なぜそれが必要なのか分かりません。ブロードキャストを有効にするためにSocketOptions.SO_BROADCASTが必要なのはなぜですか?
ユニキャストアドレスを設定するのと同じ方法で、ブロードキャストアドレスでパケットを設定します。それから、普通のソケットを通して送る必要があります。そのUDPソケットであれば、そのパケットにUDPヘッダーが追加され、次に受信者のIPアドレスを含むIPヘッダー(この場合ブロードキャストアドレスは192.168.255.255
の形式)にMACアドレス(FF:FF:FF:FF)
が追加されます。
私はルータがパケットを取得し、ブロードキャストを実行すると思います。なぜソケット属性をSO_BROADCAST
に設定する必要があるのかわかりません。
ほとんどの場合、これらの呼び出しは、単にOSで同じことを呼び出します。これは、JavaではなくOSの制約になりそうです。 –
あなたは答えとして@PeterLawrey – Fildor