Spec-Zone.ru › OpenJDK 27

Класс 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()
Возвращает набор операций, поддерживаемых этим каналом.

Методы, объявленные в классе AbstractSelectableChannel

blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
Модификатор и тип Метод Описание
final Object blockingLock()
Получает объект, на котором синхронизируются методы configureBlocking и register.
final SelectableChannel configureBlocking(boolean block)
Изменяет режим блокировки этого канала.
protected final void implCloseChannel()
Закрывает этот канал.
protected abstract void implCloseSelectableChannel()
Закрывает этот выбираемый канал.
protected abstract void implConfigureBlocking(boolean block)
Изменяет режим блокировки этого канала.
final boolean isBlocking()
Показывает, будет ли каждая операция ввода-вывода в этом канале блокироваться до ее завершения.
final boolean isRegistered()
Показывает, зарегистрирован ли этот канал в данный момент у каких-либо селекторов.
final SelectionKey keyFor(Selector sel)
Получает ключ, представляющий регистрацию канала у указанного селектора.
final SelectorProvider provider()
Возвращает поставщика, создавшего этот канал.
final SelectionKey register(Selector sel, int ops, Object att)
Регистрирует этот канал у указанного селектора и возвращает ключ выбора.

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

register
Модификатор и тип Метод Описание
final SelectionKey register(Selector sel, int ops)
Регистрирует этот канал у указанного селектора и возвращает ключ выбора.

Методы, объявленные в классе AbstractInterruptibleChannel

begin, close, end, isOpen
Модификатор и тип Метод Описание
protected final void begin()
Обозначает начало операции ввода-вывода, которая может блокироваться на неопределенное время.
final void close()
Закрывает этот канал.
protected final void end(boolean completed)
Обозначает завершение операции ввода-вывода, которая может блокироваться на неопределенное время.
final boolean isOpen()
Показывает, открыт ли этот канал.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает значение хеш-кода этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени.

Подробное описание конструкторов

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, возвращаемый этим методом (если он есть), будет работать в блокирующем режиме независимо от режима блокировки этого канала.

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

bind

public final SctpServerChannel bind(SocketAddress local) throws IOException
Привязывает сокет канала к локальному адресу и настраивает его на прослушивание ассоциаций.

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

bind(local, 0);
Параметры:
local — локальный адрес для привязки сокета или null для привязки сокета к автоматически назначенному адресу
Возвращает:
Этот канал
Выбрасывает:
ClosedChannelException — если этот канал закрыт
AlreadyBoundException — если этот канал уже привязан
UnsupportedAddressTypeException — если тип указанного адреса не поддерживается
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 — если тип указанного адреса не поддерживается
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
Возвращает:
Набор допустимых операций

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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.

Spec-Zone.ru

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