Spec-Zone .ru
спецификации, руководства, описания, API
|
Сетевой интерфейс является точкой соединения между компьютером и частным или общедоступной сетью. Сетевой интерфейс является обычно сетевой картой (NIC), но не должен иметь физической формы. Вместо этого сетевой интерфейс может быть реализован в программном обеспечении. Например, петлевой интерфейс (127.0.0.1 для IPv4 и ::1 для IPv6) не является физическим устройством, а частью программного обеспечения, моделирующего сетевой интерфейс. Петлевой интерфейс обычно используется в тестовых средах.
java.net.NetworkInterface
class представляет оба типа интерфейсов.
NetworkInterface полезен для многосетевой системы, которая является системой с многократными NIC. Используя NetworkInterface
, можно определить который NIC использовать для определенного сетевого действия.
Например, предположите, что у Вас есть машина с двумя сконфигурированными NIC, и Вы хотите отправить данные серверу. Вы создаете сокет как это:
Socket soc = new java.net.Socket(); soc.connect(new InetSocketAddress(address, port));
Чтобы отправить данные, система определяет, какой интерфейс используется. Однако, если Вы имеете предпочтение или иначе должны определить, какой NIC использовать, можно запросить систему для соответствующих интерфейсов и найти адресом в интерфейсе, Вы хотите использовать. Когда Вы создаете сокет и связываете его с тем адресом, система использует связанный интерфейс. Например:
NetworkInterface nif = NetworkInterface.getByName("bge0"); Enumeration<InetAddress> nifAddresses = nif.getInetAddresses(); Socket soc = new java.net.Socket(); soc.bind(new InetSocketAddress(nifAddresses.nextElement(), 0)); soc.connect(new InetSocketAddress(address, port));
Можно также использовать NetworkInterface
идентифицировать локальный интерфейс, в котором нужно присоединиться к многоадресной группе. Например:
NetworkInterface nif = NetworkInterface.getByName("bge0"); MulticastSocket ms = new MulticastSocket(); ms.joinGroup(new InetSocketAddress(hostname, port), nif);
NetworkInterface может использоваться с API Java многими другими способами вне двух использования, описанного здесь.