私はDatagramSocketでブロードキャストメッセージを受信しないようにする方法を探しています。実装は宛先アドレスを隠すように見えるので、フィルタとして使用することはできません。 setBroadcastを設定することは何もしないようです。Windows上のJavaでDatagramSocketを使用してブロードキャストされたUDPメッセージを無視する方法はありますか?
私はローカルIPアドレスにバインドされたソケットを持っていますが、それはまだサブネットからのすべてのブロードキャストメッセージを受信します。
InetAddress addr = InetAddress.getByName("1.2.3.4");
InetSocketAddress sockaddr = new InetSocketAddress(addr, 12345);
DatagramSocket socket = new DatagramSocket(sockaddr);
ブロードキャストメッセージをフィルタリングし、自分のIPに直接送信されるメッセージのみを受信する最も簡単な方法は何ですか?
EDIT:短い答えはノーです。この質問は、UDPメッセージのカスタムルーティングがあり、サブネット内の一部のノードがブロードキャストに必ずしもブロードキャストや興味を持っていなかったアーキテクチャに起因しています。他にも問題があり、アーキテクチャを少し変更しました。
は見えません。 (これはネイティブソケットでこれを行う方法です)。なぜちょうど*ブロードキャストトラフィックを除外したいのですか?これが何らかの「セキュリティのためのブロードキャストノイズをフィルタリングする」目的である場合は、権限のないノードからのダイレクトパケットを処理する必要があります。シナリオは何ですか? – selbie