Действительно ли возможно указать который сетевой интерфейс для JVM (или IDE) для использования

Если вы опробовали все методы с «НЕТ УСПЕХА»

  • Попробуйте запустить проект на вашем устройстве, если он работает на устройстве, то он будет работать и на симуляторе.
13
задан wojtek_z 17 June 2009 в 18:27
поделиться

3 ответа

java.net.Socket имеет конструктор, который указывает, к какому локальному IP-адресу нужно выполнить привязку, и, поскольку каждый сетевой интерфейс получает свой собственный IP-адрес, вы можете его использовать.

Но получая от a java.net.Socket для протокола более высокого уровня (например, HTTP) - совсем другое дело, но вы не указываете, что это будет.

Я не знаю способа сделать это на уровне JVM, к сожалению, только вышеупомянутый программный подход.

12
ответ дан 1 December 2019 в 22:40
поделиться

The NIC used for comms is selected by the operating system depending on the best 'route' available to what ever address is being accessed. There is no way for an application that sits above the NIC drivers to select a specific NIC. You can only get close when you're listening on a port bound at a specific address, which is only applicable if you're running a server.

You could try modifying the 'metric' of the route specific to a NIC to force the OS to prefer it.

5
ответ дан 1 December 2019 в 22:40
поделиться

Это может помочь: Определите пример сетевого интерфейса

"[I]f Если у вас есть предпочтение или вам необходимо указать, какой сетевой адаптер использовать, вы можете запросить у системы соответствующие интерфейсы и найти адрес на интерфейсе, который вы хотите использовать. "

2
ответ дан 1 December 2019 в 22:40
поделиться