こんにちは、事前に助けてくれてありがとう:
このよく知られ、議論されている問題を見ています。ただし、これはEclipse、Win 7 の Juno で実行/デバッグする場合のみです。VM のバージョンは関係ありません。
したがって、これは Eclipse のみの問題です。これは、同じアプリをスタンドアロンで実行した場合には発生しません-Eclipse内でのみ(私はすでに言いました;-))
これは、(テスト目的で) ネットワーク アダプターで IPv6 を無効にしてから、同じアダプターで IPv6 を有効にした後に発生しました。
アプリケーションは単純です。WS-Discovery ポートにマルチキャスト サーバーを作成し、そのグループへの UDP マルチキャストをリッスンしてレポートします。このプログラムは、上記のようにIPv6を無効/有効にしたマシンとEclipseを除いて、すべてのケースとプラットフォームで正常に動作します。
また: 1) はい、PreferIPv6Addresses = true および PreferIPv4Stack = false - コードで設定された引数 2) いいえ、Win 7 ホスト ファイルはめちゃくちゃではありません 3) いいえ、これは Android アプリではありません
エラーの後にコードが続きます。
改めまして、よろしくお願いいたします。
トム
Protocol family not supported
java.net.SocketException: Protocol family not supported
at java.net.PlainDatagramSocketImpl.bind(Native Method)
at java.net.DatagramSocket.bind(DatagramSocket.java:368)
at java.net.MulticastSocket.<init>(MulticastSocket.java:147)
System.setProperty("java.net.preferIPv4Stack", "false");
System.setProperty("java.net.preferIPv6Addresses", "true");
// bind to all IPv6 ports (in contrast to "0.0.0.0" for IPv4 binding)
InetAddress ia6BindTo = InetAddress.getByName("::");
SocketAddress sa = new InetSocketAddress(ia6BindTo, 3702);
// bam
MulticastSocket ms = new MulticastSocket(sa);
// no longer gets this far since disable/enable IPv6 on net adapters
InetAddress m_GroupAddress = InetAddress.getByName("[FF02::C]");
ms.joinGroup(m_GroupAddress);