Для своего проекта я хотел получить список всех доступных широковещательных адресов, чтобы я мог транслировать запрос, а другое мое приложение, расположенное на другом компьютере в неуказанной сети, отвечало и получало список, который я (теперь использую небольшую модифицированную версию с участием Майка) придумал следующее:
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;
}
Он довольно хорошо работает для обычной локальной сети, однако, когда дело доходит до локальной сети Wi-Fi, он просто пропускает второй цикл while после одного шага из-за того, что адрес
равен нулю даже несмотря на то, что когда я использовал System.out.println (interfaceItem)
только для просмотра, какие интерфейсы проходят через, он написал имя беспроводной локальной сети и мой IP-адрес, соответствующий сети.
РЕДАКТИРОВАТЬ 1: Это - результат, где 172.16.1.104 - мой IP-адрес в беспроводной сети. Проблема появляется ТОЛЬКО на моем ноутбуке с Wi-Fi. Вывод из моего ноутбука, где я в основном использую беспроводную связь, а иногда использую UTP для связи с моим другом. На моем ноутбуке также есть один сетевой интерфейс VirtualBox.
Не могли бы вы мне сказать, что с этим не так? Спасибо!
Примечание: Получается, что это может быть проблема, в частности, для моей записной книжки, а код работает для всех в целом, мне нравятся такие проблемы :-) Для меня это тупик, но все равно спасибо за помощь : -)
До сих пор люблю тебя! ; -)