В моем проекте я хотел получить список всех доступных широковещательных адресов, чтобы я мог транслировать запрос, а другое приложение, расположенное на другом компьютере в неуказанной сети, отвечало бы и получало список я (теперь использую небольшую измененную версию с вклад Майка) пришли к следующему:
private ArrayList<InetAddress> getBroadcastAddresses() {
ArrayList<InetAddress> listOfBroadcasts = new ArrayList();
Enumeration list;
try {
list = NetworkInterface.getNetworkInterfaces();
while(list.hasMoreElements()) {
NetworkInterface iface = (NetworkInterface) list.nextElement();
if(iface == null) continue;
if(!iface.isLoopback() && iface.isUp()) {
System.out.println("Found non-loopback, up interface:" + iface);
Iterator it = iface.getInterfaceAddresses().iterator();
while (it.hasNext()) {
InterfaceAddress address = (InterfaceAddress) it.next();
System.out.println("Found address: " + address);
if(address == null) continue;
InetAddress broadcast = address.getBroadcast();
if(broadcast != null) listOfBroadcasts.add(broadcast);
}
}
}
} catch (SocketException ex) {
return new ArrayList<InetAddress>();
}
return site;
}
Это хорошо работает для reqular LAN, но когда дело доходит до Wi-Fi LAN, он просто пропускает второй цикл while после одного шага из-за того, что address
равно нулю, хотя при использовании System.out.println(interfaceItem)
просто для просмотра того, какие интерфейсы через него написано имя беспроводной ЛВС и мой IP-адрес, соответствующий сети.
ИЗМЕНИТЬ 1: Это - это вывод, где 172.16.1.104 - это мой IP-адрес в беспроводной сети. Проблема появляется ТОЛЬКО на моем ноутбуке с Wi-Fi. Выход из моего ноутбука, где я в основном использую беспроводную связь, а иногда я использую UTP для подключения к моему другу. Существует также один сетевой интерфейс VirtualBox на моем ноутбуке.
Не могли бы вы рассказать мне, что с ним не так? Спасибо!
Примечание. Таким образом, оказывается, что это может быть проблемой для моего ноутбука, в частности, и код работает для всех остальных в целом, мне нравится такая проблема:-) Кажется, это тупик для меня, но спасибо за помощь в любом случае:-)
Еще люблю тебя!; -)