0

マルチおよびユニキャストでメッセージを送信する必要があるアプリを作成しています。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 コンストラクターでエラーが発生しています。これを機能させる方法がわかりません。

4

2 に答える 2

2

マルチキャスト アドレスへのバインドは、Windows では機能しません。INADDR_ANY を意味する null にバインドします。

于 2012-12-30T01:31:51.667 に答える