次のコードは私のためだけにローカルで動作します。私は別のプログラムで同じマシンで受け取ることができます。 wiresharkのトラフィックは見えません(Windowsの場合)。 10.10.10.10のような既存のアドレスにマルチキャストアドレスを変更すると、wiresharkにUDPパケットが表示されます。DatagramSocketがマルチキャストアドレスを持つネットワーク経由で送信しないのはなぜですか?
私は== 5353 udp.portフィルタを使用するのwiresharkで私は私の事私のwiresharkの設定が正しいことをマルチキャストアドレスに他のいくつかのパケットを見ることができます。
ファイアウォールは無効です。
public static void main(String[] args) throws Exception {
byte[] buf = "some data".getBytes();
DatagramSocket socket = new DatagramSocket();
InetAddress address = InetAddress.getByName("224.0.0.251");
socket.send(new DatagramPacket(buf, buf.length, address, 5353));
}
EDIT:ループバックアダプター(Microsoft LoopbackadapterfürKM-TEST)のようです。ループバック・アダプターを取り外すと、それは機能します。別のシステムには、同等の問題を引き起こすVMwareアダプタがあります。
パケットがすべてのネットワークアダプタに送信されないのはなぜですか?正しいアダプタに送るにはどうすればいいですか?
ネットワーク設定は何ですか?ネットマスクとは何ですか? –
@BoristheSpider私の編集を参照してください。 – Horcrux7