Java getNetworkPrefixLength()在WLAN上始终为-1

Java getNetworkPrefixLength()在WLAN上始终为-1,java,network-programming,Java,Network Programming,我想建立一个服务器,可以通过网络内的Wifi发现。因此,服务器应发送UDP数据报,以公布其存在 在我的电脑上我有一个无线网卡。通过Java NetworkInterface和InterfaceAddress的方法读取信息,可以获得以下信息: 300Mbps Wireless USB Adapter interface InetAddress: /192.168.43.16 interface address string in textual presentation: 192.168.43.1

我想建立一个服务器,可以通过网络内的Wifi发现。因此,服务器应发送UDP数据报,以公布其存在

在我的电脑上我有一个无线网卡。通过Java NetworkInterface和InterfaceAddress的方法读取信息,可以获得以下信息:

300Mbps Wireless USB Adapter
interface InetAddress: /192.168.43.16
interface address string in textual presentation: 192.168.43.16
network prefix length: -1
broadcast InetAddress: /96.113.104.12
broadcastAddress: 96.113.104.12

300Mbps Wireless USB Adapter
interface InetAddress: /192.168.43.16
interface address string in textual presentation: 192.168.43.16
network prefix length: -1
broadcast InetAddress: /0.0.0.0
broadcastAddress: 0.0.0.0
Exception in socket discovery beacon send thread.
为什么同一个地址会有多个广播地址


在我的Windows PC上使用ipconfig/all告诉我,我的子网掩码是255.255.255.0。所以通常网络前缀长度应该是24,或者?

好的,我找到了这个问题的答案,发布在

它说,这是java源代码中的一个bug。Java8修复了这个bug。因此,简单地使用Java8就为我解决了这个问题