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 многими другими способами вне двух использования, описанного здесь.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Программируемый Доступ к Сетевым Параметрам
Следующая страница: Получение Сетевых интерфейсов