Класс MembershipKey
public abstract class MembershipKey extends Object
Ключ членства может представлять членство для получения всех датаграмм, отправленных в группу, или он может быть специфичным для источника, означая, что он представляет членство, которое получает только датаграммы от определённого адреса источника. Является ли ключ членства специфичным для источника, можно определить, вызвав его метод sourceAddress.
Ключ членства действителен при создании и остаётся действительным до тех пор, пока членство не будет снято путём вызова метода drop или канал не будет закрыт. Действительность ключа членства можно проверить, вызвав его метод isValid.
Если ключ членства не специфичен для источника, а операционная система поддерживает фильтрацию по источнику, то методы block и unblock могут быть использованы для блокировки или разблокировки мультиадресных датаграмм от определённых адресов источника.
- С:
- 1.7
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Инициализирует новый экземпляр этого класса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract MembershipKey |
block |
Блокирует мультиадресные датаграммы от указанного адреса источника. |
abstract MulticastChannel |
channel() |
Возвращает канал, для которого был создан этот ключ членства. |
abstract void |
drop() |
Снимает членство. |
abstract InetAddress |
group() |
Возвращает группу мультиадресной рассылки, для которой был создан этот ключ членства. |
abstract boolean |
isValid() |
Определяет, действителен ли этот ключ членства. |
abstract NetworkInterface |
networkInterface() |
Возвращает сетевой интерфейс, для которого был создан этот ключ членства. |
abstract InetAddress |
sourceAddress() |
Возвращает адрес источника, если этот ключ членства специфичен для источника, или null, если это членство не специфично для источника. |
abstract MembershipKey |
unblock |
Разблокирует мультиадресные датаграммы от указанного адреса источника, который был ранее заблокирован с помощью метода block. |
Подробное описание конструкторов
MembershipKey
protected MembershipKey()
Подробное описание методов
isValid
public abstract boolean isValid()
Членство в группе мультиадресной рассылки действительно при создании и остаётся действительным до тех пор, пока членство не будет снято путём вызова метода drop или канал не будет закрыт.
- Возвращает:
-
trueесли этот ключ членства действителен,falseв противном случае
drop
public abstract void drop()
Если ключ членства представляет собой членство в получении всех датаграмм, то членство снимается, и канал больше не будет получать никаких датаграмм, отправленных в группу. Если ключ членства специфичен для источника, то канал больше не будет получать датаграммы, отправленные в группу от этого адреса источника.
После снятия членства всё ещё может быть возможно получить датаграммы, отправленные в группу. Это может возникнуть, когда датаграммы ожидают получения в буфере приема сокета. После снятия членства канал может join группу снова, в этом случае возвращается новый ключ членства.
По возвращении этот объект членства будет invalid. Если членство в группе мультиадресной рассылки уже недействительно, то вызов этого метода не окажет никакого влияния. После того, как членство в группе мультиадресной рассылки становится недействительным, оно навсегда остаётся таким.
block
public abstract MembershipKey block(InetAddress source) throws IOException
Если этот ключ членства не специфичен для источника и операционная система поддерживает фильтрацию по источнику, то этот метод блокирует мультиадресные датаграммы от указанного адреса источника. Если указанный адрес источника уже заблокирован, то этот метод не оказывает никакого влияния. После блокировки адреса источника всё ещё может быть возможно получить датаграммы от этого источника. Это может возникнуть, когда датаграммы ожидают получения в буфере приема сокета.
- Параметры:
-
source- Адрес источника, который нужно заблокировать - Возвращает:
- Этот ключ членства
- Исключения:
-
IllegalArgumentException- Если параметрsourceне является адресом одноадресной рассылки или не имеет такого же типа адреса, как группа мультиадресной рассылки -
IllegalStateException- Если этот ключ членства специфичен для источника или больше не действителен -
UnsupportedOperationException- Если операционная система не поддерживает фильтрацию по источнику -
IOException- Если произошла ошибка ввода-вывода
unblock
public abstract MembershipKey unblock(InetAddress source)
block.- Параметры:
-
source- Адрес источника, который нужно разблокировать - Возвращает:
- Этот ключ членства
- Исключения:
-
IllegalStateException- Если данный адрес источника в настоящее время не заблокирован или ключ членства больше не действителен
channel
public abstract MulticastChannel channel()
invalid.- Возвращает:
- канал
group
public abstract InetAddress group()
invalid.- Возвращает:
- группа мультиадресной рассылки
networkInterface
public abstract NetworkInterface networkInterface()
invalid.- Возвращает:
- сетевой интерфейс
sourceAddress
public abstract InetAddress sourceAddress()
null если это членство не специфично для источника.- Возвращает:
- Адрес источника, если этот ключ членства специфичен для источника, в противном случае
null
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/channels/MembershipKey.html