我有一些这样的代码:
InetAddress bind = InetAddress.getByName("192.168.0.1")
MulticastSocket socket = new MulticastSocket(new InetSocketAddress(bind,0));
socket.setInterface(bind);
在带有 JDK6u17 的 windows 7 和 windows XP 上,我得到了 SocketException: Socket operation on non socket。
但是,如果我将第 2 行更改为:
MulticastSocket socket = new MulticastSocket(0);
没关系,使用 jdk6u14 也可以找到工作。
为什么?谢谢。
编辑: 为什么端口 0 应该是问题?
MulticastSocket socket = new MulticastSocket(0);
这段代码一切顺利。但不是
MulticastSocket socket = new MulticastSocket(new InetSocketAddress(bind,port));
无论港口是什么。