Spec-Zone .ru
спецификации, руководства, описания, API
|
public interface MulticastChannel extends NetworkChannel
Многоадресная передача IP является передачей дейтаграмм IP к элементам группы, которая является нулем или большим количеством узлов, идентифицированных единственным адресом получателя.
В случае канала к IPv4
сокет, базовая операционная система поддерживаетIPv6
сокет, эквивалентные стандарты являются
join(InetAddress,NetworkInterface)
метод используется, чтобы присоединиться к группе и получить все многоадресные дейтаграммы, отправленные группе. Канал может присоединиться к нескольким многоадресным группам и может присоединиться к той же самой группе на нескольких interfaces
. Членство отбрасывается, вызывая drop
метод на возвращенном MembershipKey
. Если базовая платформа поддерживает источник, фильтрующий тогда block
и unblock
методы могут использоваться, чтобы блокировать или разблокировать многоадресные дейтаграммы от определенных исходных адресов.
join(InetAddress,NetworkInterface,InetAddress)
метод используется, чтобы начать получать дейтаграммы, отправленные группе, исходный адрес которой соответствует данный исходный адрес. Этот метод броски UnsupportedOperationException
если базовая платформа не поддерживает исходную фильтрацию. Членство является совокупным, и этот метод может быть вызван снова с той же самой группой и интерфейсом, чтобы позволить получать дейтаграммы от других исходных адресов. Метод возвращает a MembershipKey
это представляет членство, чтобы получить дейтаграммы от данного исходного адреса. Вызов ключа drop
метод отбрасывает членство так, чтобы дейтаграммы от исходного адреса больше не могли быть получены.
Создание канала должно определить ProtocolFamily
это соответствует типу адреса многоадресных групп, к которым присоединится канал. Нет никакой гарантии, что канал к сокету в одном семействе протокола может присоединиться и получить многоадресные дейтаграммы, когда адрес многоадресной группы соответствует другому семейству протокола. Например, это - реализация, определенная если канал к IPv6
сокет может присоединиться IPv4
многоадресная группа и получает многоадресные дейтаграммы, отправленные группе.
Сокет канала должен быть связан с wildcard
адрес. Если сокет связывается с определенным адресом, а не подстановочным адресом тогда, это - реализация, определенная, если многоадресные дейтаграммы получаются сокетом.
SO_REUSEADDR
до опции нужно включить binding
сокет. Это обязано позволять многократным элементам группы связывать с тем же самым адресом.
Пример использования:
// join multicast group on this interface, and also use this // interface for outgoing multicast datagrams NetworkInterface ni = NetworkInterface.getByName("hme0"); DatagramChannel dc = DatagramChannel.open(StandardProtocolFamily.INET) .setOption(StandardSocketOptions.SO_REUSEADDR, true) .bind(new InetSocketAddress(5000)) .setOption(StandardSocketOptions.IP_MULTICAST_IF, ni); InetAddress group = InetAddress.getByName("225.4.5.6"); MembershipKey key = dc.join(group, ni);
Модификатор и Тип | Метод и Описание |
---|---|
void |
close()
Завершения этот канал.
|
MembershipKey |
join(InetAddress group, NetworkInterface interf)
Присоединяется к многоадресной группе, чтобы начать получать все дейтаграммы, отправленные группе, возвращая ключ членства.
|
MembershipKey |
join(InetAddress group, NetworkInterface interf, InetAddress source)
Присоединяется к многоадресной группе, чтобы начать получать дейтаграммы, отправленные группе от данного исходного адреса.
|
bind, getLocalAddress, getOption, setOption, supportedOptions
void close() throws IOException
Если канал является элементом многоадресной группы тогда, членство dropped
. По возврату, membership-key
будет invalid
.
Этот метод иначе ведет себя точно как определено Channel
интерфейс.
close
в интерфейсе AutoCloseable
close
в интерфейсе Channel
close
в интерфейсе Closeable
IOException
- Если ошибка ввода-вывода происходитMembershipKey join(InetAddress group, NetworkInterface interf) throws IOException
Если этот канал является в настоящий момент элементом группы в данном интерфейсе, чтобы получить все дейтаграммы тогда, ключ членства, представляя то членство, возвращается. Иначе этот канал присоединяется к группе, и получающийся новый ключ членства возвращается. Получающийся ключ членства не source-specific
.
Многоадресный канал может присоединиться к нескольким многоадресным группам, включая ту же самую группу больше чем в одном интерфейсе. Реализация может наложить предел на число групп, к которым можно присоединиться одновременно.
group
- Многоадресный адрес, чтобы присоединитьсяinterf
- Сетевой интерфейс, на котором можно присоединиться к группеIllegalArgumentException
- Если групповой параметр не является a multicast
адрес, или групповой параметр является типом адреса, который не поддерживается этим каналомIllegalStateException
- Если у канала уже есть специфичное для источника членство группы в интерфейсеUnsupportedOperationException
- Если сокет канала не является интернет-сокетом ПротоколаClosedChannelException
- Если этот канал закрываетсяIOException
- Если ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности устанавливается, и checkMulticast
метод лишает доступа к multiast группеMembershipKey join(InetAddress group, NetworkInterface interf, InetAddress source) throws IOException
Если этот канал является в настоящий момент элементом группы в данном интерфейсе, чтобы получить дейтаграммы от данного исходного адреса тогда, ключ членства, представляя то членство, возвращается. Иначе этот канал присоединяется к группе, и получающийся новый ключ членства возвращается. Получающийся ключ членства source-specific
.
Членство является совокупным, и этот метод может быть вызван снова с той же самой группой и интерфейсом, чтобы позволить получать дейтаграммы, отправленные другими исходными адресами группе.
group
- Многоадресный адрес, чтобы присоединитьсяinterf
- Сетевой интерфейс, на котором можно присоединиться к группеsource
- Исходный адресIllegalArgumentException
- Если групповой параметр не является a multicast
адрес, исходный параметр не является одноадресным адресом, групповой параметр является типом адреса, который не поддерживается этим каналом, или исходный параметр не является тем же самым типом адреса как группаIllegalStateException
- Если канал является в настоящий момент элементом группы в данном интерфейсе, чтобы получить все дейтаграммыUnsupportedOperationException
- Если сокет канала не является интернет-сокетом Протокола, или исходная фильтрация не поддерживаетсяClosedChannelException
- Если этот канал закрываетсяIOException
- Если ошибка ввода-вывода происходитSecurityException
- Если менеджер безопасности устанавливается, и checkMulticast
метод лишает доступа к multiast группе
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.