Spec-Zone.ru › OpenJDK 17

Класс SctpServerChannel

java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
com.sun.nio.sctp.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

Краткое описание конструкторов

SctpServerChannel(SelectorProvider provider)
Модификатор Конструктор Описание
protected
Инициализирует новый экземпляр этого класса.

Краткое описание методов

Модификатор и тип Метод Описание
abstract SctpChannel accept()
Принимает ассоциацию на сокете этого канала.
final 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)
Удаляет указанный адрес из привязанных адресов для сокета канала.
final int validOps()
Возвращает набор операций, определяющий поддерживаемые операции этого канала.

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

blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register

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

register

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

begin, close, end, isOpen

Методы, унаследованные от класса 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 — это максимальное количество ожидающих ассоциаций в сокете. Его точная семантика зависит от реализации. Реализация может наложить максимальную длину, зависящую от реализации, или может выбрать игнорирование параметра. Если параметр backlog имеет значение 0, или отрицательное значение, то используется значение по умолчанию, зависящее от реализации.

Параметры:
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
Устанавливает значение параметра сокета.
Type Parameters:
T - Тип значения параметра сокета
Parameters:
name - Параметр сокета
value - Значение параметра сокета. Значение null может быть допустимым значением для некоторых параметров сокета.
Returns:
Этот канал
Throws:
UnsupportedOperationException - Если параметр сокета не поддерживается этим каналом
IllegalArgumentException - Если значение не является допустимым значением для этого параметра сокета
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла ошибка ввода-вывода
See Also:
  • SctpStandardSocketOptions

supportedOptions

public abstract Set<SctpSocketOption<?>> supportedOptions()
Возвращает набор параметров сокета, поддерживаемых этим каналом.

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

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

validOps

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

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

Specified by:
validOps в классе SelectableChannel
Returns:
Набор допустимых операций

© 1993, 2021, 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/17/docs/api/jdk.sctp/com/sun/nio/sctp/SctpServerChannel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API