マルチおよびユニキャストでメッセージを送信する必要があるアプリを作成しています。Linux では動作しますが、Windows では動作しません。
私は常に BindException を受け取り、次のコード スニペットで問題を切り分けました。
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.MulticastSocket;
public class Test {
public static void main(String[] args) {
InetSocketAddress isa = new InetSocketAddress("239.255.0.113", 1234);
try {
MulticastSocket mcs = new MulticastSocket(isa);
} catch (IOException e) {
e.printStackTrace();
}
}
}
このプログラムを実行すると、次の例外が発生します。
java.net.BindException: Cannot assign requested address: Cannot bind
at java.net.TwoStacksPlainDatagramSocketImpl.bind0(Native Method)
at java.net.AbstractPlainDatagramSocketImpl.bind(Unknown Source)
at java.net.TwoStacksPlainDatagramSocketImpl.bind(Unknown Source)
at java.net.DatagramSocket.bind(Unknown Source)
at java.net.MulticastSocket.<init>(Unknown Source)
at Test.main(Test.java:10)
MulticastSocket コンストラクターでエラーが発生しています。これを機能させる方法がわかりません。