次のようなコードがあります。
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 でも find が動作します。
なんで?ありがとう。
編集: なぜポート 0 が問題になるのでしょうか?
MulticastSocket socket = new MulticastSocket(0);
このコードではすべてうまくいきますが、そうではありません
MulticastSocket socket = new MulticastSocket(new InetSocketAddress(bind,port));
ポートは何でも構いません。