Spec-Zone.ru › OpenJDK 25

Класс 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

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

register

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

begin, close, end, isOpen

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

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

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

Возвращает:
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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.sctp/com/sun/nio/sctp/SctpServerChannel.html

Spec-Zone.ru

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