我正在创建一个需要通过多播和单播发送消息的应用程序。它适用于 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 构造函数中。我不知道如何让它工作。