Класс SctpServerChannel

Все реализованные интерфейсы:
Closeable, AutoCloseable, Channel, InterruptibleChannel
public abstract class SctpServerChannel
extends AbstractSelectableChannel

Выбираемый канал для прослушивания сокетов SCTP, ориентированных на сообщения.

Объект SCTPServerChannel создаётся путём вызова метода open этого класса. Недавно созданный серверный канал SCTP открыт, но ещё не привязан. Попытка вызвать метод accept не привязанного канала приведёт к выбрасыванию исключения NotYetBoundException. Серверный канал SCTP может быть привязан путём вызова одного из методов bind, определённых в этом классе.

Параметры сокета настраиваются с помощью метода setOption. Серверные сокет-каналы SCTP поддерживают следующие параметры:

Имя параметра Описание
SCTP_INIT_MAXSTREAMS Максимальное количество потоков, запрашиваемое локальным узлом во время инициализации ассоциации
Дополнительные (специфичные для реализации) параметры также могут быть поддерживаемы. Список поддерживаемых параметров получается путём вызова метода supportedOptions.

Серверные каналы SCTP безопасны для использования несколькими конкурирующими потоками.

С:
1.7

Конструкторы

Модификатор Конструктор Описание
protected SctpServerChannel​(SelectorProvider provider)

Инициализирует новый экземпляр этого класса.

Методы

Модификатор и тип Метод Описание
abstract SctpChannel accept()

Принимает ассоциацию на сокете данного канала.

SctpServerChannel bind​(SocketAddress local)

Привязывает сокет канала к локальному адресу и настраивает сокет для прослушивания ассоциаций.

abstract SctpServerChannel bind​(SocketAddress local, int backlog)

Привязывает сокет канала к локальному адресу и настраивает сокет для прослушивания ассоциаций.

abstract SctpServerChannel bindAddress​(InetAddress address)

Добавляет указанный адрес к привязанным адресам для сокета канала.

abstract Set<SocketAddress> getAllLocalAddresses()

Возвращает все адреса сокетов, к которым привязан сокет данного канала.

abstract <T> T getOption​(SctpSocketOption<T> name)

Возвращает значение параметра сокета.

static SctpServerChannel open()

Открывает серверный канал SCTP.

abstract <T> SctpServerChannel setOption​(SctpSocketOption<T> name, T value)

Устанавливает значение параметра сокета.

abstract Set<SctpSocketOption<?>> supportedOptions()

Возвращает набор параметров сокета, поддерживаемых данным каналом.

abstract SctpServerChannel unbindAddress​(InetAddress address)

Удаляет указанный адрес из привязанных адресов для сокета канала.

int validOps()

Возвращает набор операций, идентифицирующих поддерживаемые операции канала.

Методы, объявленные в классе java.nio.channels.spi.AbstractSelectableChannel

configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, provider, register

Методы, объявленные в классе java.nio.channels.SelectableChannel

blockingLock, isBlocking, isRegistered, keyFor, register

Методы, объявленные в классе java.nio.channels.spi.AbstractInterruptibleChannel

begin, close, end

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, объявленные в интерфейсе java.nio.channels.Channel

isOpen

Конструкторы

SctpServerChannel

protected SctpServerChannel(SelectorProvider provider)

Инициализирует новый экземпляр этого класса.

Параметры:
provider - поставщик селектора для этого канала

Методы

open

public static SctpServerChannel open()
                              throws IOException

Открывает канал сервера SCTP.

Сокет нового канала изначально не привязан; он должен быть привязан к определённому адресу с помощью одного из методов bind сокета перед тем, как можно будет принять ассоциации.

Возвращает:
Новый канал сервера SCTP
Бросает:
UnsupportedOperationException - Если протокол SCTP не поддерживается
IOException - Если произошла ошибка ввода-вывода

accept

public abstract SctpChannel accept()
                            throws IOException

Принимает ассоциацию на сокете этого канала.

Если этот канал находится в режиме неблокирующей работы, то этот метод немедленно вернёт null если нет ожидающих ассоциаций. В противном случае он будет блокироваться до бесконечности, пока не появится новая ассоциация или не произойдёт ошибка ввода-вывода.

Возвращаемый этим методом SCTPChannel, если таковой имеется, будет в режиме блокирования независимо от режима блокирования этого канала.

Если установлен менеджер безопасности, то для каждой новой ассоциации этот метод проверяет, разрешены ли адрес и номер порта удалённого узла ассоциации менеджером безопасности с помощью метода checkAccept.

Возвращает:
Канал SCTP для новой ассоциации или null , если этот канал находится в режиме неблокирующей работы и нет доступной для принятия ассоциации
Бросает:
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время выполнения операции accept
ClosedByInterruptException - Если другой поток прерывает текущий поток во время выполнения операции accept, тем самым закрывая канал и устанавливая статус прерывания текущего потока
NotYetBoundException - Если сокет этого канала ещё не привязан
SecurityException - Если установлен менеджер безопасности, и он не разрешает доступ к удалённому узлу новой ассоциации
IOException - Если произошла какая-то другая ошибка ввода-вывода

bind

public final SctpServerChannel bind(SocketAddress local)
                             throws IOException

Привязывает сокет канала к локальному адресу и настраивает сокет для прослушивания ассоциаций.

Этот метод работает так, как если бы его вызов был эквивалентен оценке выражения:

bind(local, 0);
Параметры:
local - Локальный адрес для привязки сокета или null для привязки сокета к автоматически назначенному адресу сокета
Возвращает:
Этот канал
Бросает:
ClosedChannelException - Если этот канал закрыт
AlreadyBoundException - Если этот канал уже привязан
UnsupportedAddressTypeException - Если тип заданного адреса не поддерживается
SecurityException - Если установлен менеджер безопасности, и его метод checkListen запрещает операцию
IOException - Если произошла какая-то другая ошибка ввода-вывода

bind

public abstract SctpServerChannel bind(SocketAddress local,
                                       int backlog)
                                throws IOException

Привязывает сокет канала к локальному адресу и настраивает сокет для прослушивания ассоциаций.

Этот метод используется для установления связи между сокетом и локальным адресом. После установления связи сокет остаётся привязанным до тех пор, пока канал не будет закрыт. Эта связь может не быть обязательно с адресом local, так как она может быть удалена с помощью unbindAddress, но всегда будет по крайней мере один локальный адрес, привязанный к сокету канала после успешного завершения вызова этого метода.

После успешной привязки сокета канала к определённому адресу, который не назначается автоматически, к нему могут быть добавлены дополнительные адреса с помощью bindAddress или удалены с помощью unbindAddress.

Параметр backlog — максимальное количество ожидающих ассоциаций на сокете. Его точное значение зависит от реализации.

Параметры:
local - Локальный адрес для привязки сокета, или null для привязки сокета к автоматически назначенному адресу сокета
backlog - Максимальное число ожидающих ассоциаций
Возвращает:
Этот канал
Бросает:
ClosedChannelException - Если этот канал закрыт
AlreadyBoundException - Если этот канал уже привязан
UnsupportedAddressTypeException - Если тип заданного адреса не поддерживается
SecurityException - Если установлен менеджер безопасности, и его метод checkListen запрещает операцию
IOException - Если произошла какая-то другая ошибка ввода-вывода

bindAddress

public abstract SctpServerChannel bindAddress(InetAddress address)
                                       throws IOException

Добавляет указанный адрес в привязанные адреса для сокета канала.

Заданный адрес не должен быть адресом wildcard. Канал должен быть сначала привязан с помощью bind перед вызовом этого метода, иначе будет выброшено исключение NotYetBoundException. Метод bind принимает в качестве аргумента SocketAddress, который обычно содержит номер порта и адрес. Адреса, привязанные позже с помощью этого метода, являются просто адресами, так как номер порта SCTP остаётся неизменным на протяжении всего срока службы канала.

Новые ассоциации, принятые после успешного выполнения этого метода, будут связаны с указанным адресом.

Параметры:
address - Адрес для добавления в привязанные адреса сокета
Возвращает:
Этот канал
Бросает:
ClosedChannelException - Если этот канал закрыт
NotYetBoundException - Если этот канал ещё не привязан
AlreadyBoundException - Если этот канал уже привязан к указанному адресу
IllegalArgumentException - Если адрес является null или адресом wildcard
IOException - Если произошла какая-то другая ошибка ввода-вывода

unbindAddress

public abstract SctpServerChannel unbindAddress(InetAddress address)
                                         throws IOException

Удаляет указанный адрес из привязанных адресов для сокета канала.

Указанный адрес не должен быть адресом wildcard. Канал должен быть сначала привязан с помощью bind перед вызовом этого метода, иначе будет выброшено исключение NotYetBoundException. Если этот метод вызывается для канала, у которого address не является одним из привязанных адресов, или у которого привязано только один локальный адрес, то этот метод выбрасывает исключение IllegalUnbindException. Изначальный адрес, к которому привязан сокет канала с помощью bind, может быть удалён из привязанных адресов для сокета канала.

Новые ассоциации, принятые после успешного выполнения этого метода, не будут связаны с указанным адресом.

Параметры:
address - Адрес для удаления из привязанных адресов сокета
Возвращает:
Этот канал
Бросает:
ClosedChannelException - Если этот канал закрыт
NotYetBoundException - Если этот канал ещё не привязан
IllegalArgumentException - Если адрес является null или адресом wildcard
IllegalUnbindException - Если реализация не поддерживает удаление адресов из сокета прослушивания, address не привязан к сокету канала или у канала привязан только один адрес
IOException - Если произошла какая-то другая ошибка ввода-вывода

getAllLocalAddresses

public abstract Set<SocketAddress> getAllLocalAddresses()
                                                 throws IOException

Возвращает все адреса сокета, к которым привязан сокет этого канала.

Возвращает:
Все адреса сокета, к которым привязан сокет этого канала, или пустой Set если сокет канала не привязан
Бросает:
ClosedChannelException - Если канал закрыт
IOException - Если произошла ошибка ввода-вывода

getOption

public abstract <T> T getOption(SctpSocketOption<T> name)
                         throws IOException

Возвращает значение параметра сокета.

Параметры типов:
T - Тип значения параметра сокета
Параметры:
name - Параметр сокета
Возвращает:
Значение параметра сокета. Значение null может быть допустимым значением для некоторых параметров сокета.
Бросает:
UnsupportedOperationException - Если параметр сокета не поддерживается этим каналом
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла ошибка ввода-вывода
См. также:
SctpStandardSocketOptions

setOption

public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name,
                                                T value)
                                         throws IOException

Устанавливает значение параметра сокета.

Параметры типов:
T - Тип значения параметра сокета
Параметры:
name - Параметр сокета
value - Значение параметра сокета. Значение null может быть допустимым значением для некоторых параметров сокета.
Возвращает:
Этот канал
Бросает:
UnsupportedOperationException - Если параметр сокета не поддерживается этим каналом
IllegalArgumentException - Если значение не является допустимым для этого параметра сокета
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла ошибка ввода-вывода
См. также:
SctpStandardSocketOptions

supportedOptions

public abstract Set<SctpSocketOption<?>> supportedOptions()

Возвращает набор параметров сокета, поддерживаемых этим каналом.

Этот метод будет продолжать возвращать набор параметров даже после закрытия канала.

Возвращает:
Набор параметров сокета, поддерживаемых этим каналом

validOps

public final int validOps()

Возвращает набор операций, определяющий поддерживаемые операции этого канала.

Каналы SCTP-сервера поддерживают только принятие новых ассоциаций, поэтому этот метод возвращает SelectionKey.OP_ACCEPT.

Определено в:
validOps в классе SelectableChannel
Возвращает:
Набор допустимых операций

© 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/jdk.sctp/com/sun/nio/sctp/SctpServerChannel.html

Spec-Zone .ru
спецификации, руководства, описания, API