Класс MembershipKey
- java.lang.Object
-
- java.nio.channels.MembershipKey
public abstract class MembershipKey extends Object
Токен, представляющий членство в группе интернет-мультимедиа (IP) multicast.
Ключ членства может представлять членство в получении всех дейтаграмм, отправленных в группу, или он может быть специфичным для источника, что означает, что он представляет членство, которое получает только дейтаграммы от определённого адреса источника. Можно определить, является ли ключ членства специфичным для источника, вызвав метод sourceAddress.
Ключ членства является валидным при создании и остаётся валидным до тех пор, пока членство не будет отменено, вызвав метод drop, или канал не будет закрыт. Валидность ключа членства можно проверить, вызвав метод isValid.
В случае, если ключ членства не специфичен для источника и операционная система поддерживает фильтрацию по источнику, методы block и unblock можно использовать для блокирования или разблокирования дейтаграмм multicast от определённых адресов источника.
- Since:
- 1.7
- См. также:
MulticastChannel
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
MembershipKey() |
Инициализирует новый экземпляр этого класса. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract MembershipKey |
block(InetAddress source) |
Блокирует дейтаграммы multicast от указанного адреса источника. |
abstract MulticastChannel |
channel() |
Возвращает канал, для которого был создан этот ключ членства. |
abstract void |
drop() |
Отмена членства. |
abstract InetAddress |
group() |
Возвращает группу multicast, для которой был создан этот ключ членства. |
abstract boolean |
isValid() |
Указывает, является ли это членство валидным. |
abstract NetworkInterface |
networkInterface() |
Возвращает сетевой интерфейс, для которого был создан этот ключ членства. |
abstract InetAddress |
sourceAddress() |
Возвращает адрес источника, если этот ключ членства специфичен для источника, или |
abstract MembershipKey |
unblock(InetAddress source) |
Разблокирует дейтаграммы multicast от указанного адреса источника, которые были ранее заблокированы с помощью метода |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
MembershipKey
protected MembershipKey()
Инициализирует новый экземпляр этого класса.
Методы
isValid
public abstract boolean isValid()
Указывает, является ли это членство валидным.
Членство в группе multicast является валидным при создании и остаётся валидным до тех пор, пока членство не будет отменено вызовом метода drop, или канал не будет закрыт.
- Возвращает:
trueесли этот ключ членства валиден,falseв противном случае
drop
public abstract void drop()
Отмена членства.
Если ключ членства представляет членство в получении всех дейтаграмм, то членство отменяется, и канал больше не будет получать какие-либо дейтаграммы, отправленные в группу. Если ключ членства специфичен для источника, то канал больше не будет получать дейтаграммы, отправленные в группу от этого адреса источника.
После отмены членства всё ещё может быть возможно получить дейтаграммы, отправленные в группу. Это может произойти, когда дейтаграммы ожидают получения в буфере приема сокета. После отмены членства канал может join группу снова, в этом случае возвращается новый ключ членства.
При возвращении этот объект членства будет invalid. Если членство в группе multicast уже не валидно, то вызов этого метода не окажет никакого влияния. После того, как членство в группе multicast становится невалидным, оно навсегда остаётся невалидным.
block
public abstract MembershipKey block(InetAddress source)
throws IOException
Блокирует дейтаграммы multicast от указанного адреса источника.
Если этот ключ членства не специфичен для источника и операционная система поддерживает фильтрацию по источнику, то этот метод блокирует дейтаграммы multicast от указанного адреса источника. Если данный адрес источника уже заблокирован, то этот метод не окажет никакого влияния. После того, как адрес источника заблокирован, всё ещё может быть возможно получить дейтаграммы от этого источника. Это может произойти, когда дейтаграммы ожидают получения в буфере приема сокета.
- Параметры:
-
source- Адрес источника для блокирования - Возвращает:
- Этот ключ членства
- Исключения:
-
IllegalArgumentException- Если параметрsourceне является одноадресным адресом или не является того же типа адреса, что и группа multicast -
IllegalStateException- Если этот ключ членства специфичен для источника или больше не является валидным -
UnsupportedOperationException- Если операционная система не поддерживает фильтрацию по источнику -
IOException- Если произошла ошибка ввода/вывода
unblock
public abstract MembershipKey unblock(InetAddress source)
Разблокирует дейтаграммы multicast от указанного адреса источника, которые были ранее заблокированы с помощью метода block.
- Параметры:
-
source- Адрес источника для разблокирования - Возвращает:
- Этот ключ членства
- Исключения:
-
IllegalStateException- Если указанный адрес источника в настоящее время не заблокирован или ключ членства больше не валиден
channel
public abstract MulticastChannel channel()
Возвращает канал, для которого был создан этот ключ членства. Этот метод будет продолжать возвращать канал даже после того, как членство станет invalid.
- Возвращает:
- канал
group
public abstract InetAddress group()
Возвращает группу multicast, для которой был создан этот ключ членства. Этот метод будет продолжать возвращать группу даже после того, как членство станет invalid.
- Возвращает:
- группа multicast
networkInterface
public abstract NetworkInterface networkInterface()
Возвращает сетевой интерфейс, для которого был создан этот ключ членства. Этот метод будет продолжать возвращать сетевой интерфейс даже после того, как членство станет invalid.
- Возвращает:
- сетевой интерфейс
sourceAddress
public abstract InetAddress sourceAddress()
Возвращает адрес источника, если этот ключ членства специфичен для источника, или null если это членство не специфично для источника.
- Возвращает:
- Адрес источника, если этот ключ членства специфичен для источника, в противном случае
null
© 1993, 2020, 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/11/docs/api/java.base/java/nio/channels/MembershipKey.html