Класс SctpServerChannel
- Все реализуемые интерфейсы:
Closeable, AutoCloseable, Channel, InterruptibleChannel
public abstract class SctpServerChannel extends AbstractSelectableChannel
SCTPServerChannel создается вызовом метода open этого класса. Созданный SCTP-канал сервера открыт, но еще не привязан. Попытка вызвать метод accept непривязанного канала приведет к выбросу исключения NotYetBoundException. SCTP-канал сервера можно привязать, вызвав один из методов bind, определенных в этом классе.
Параметры сокета настраиваются с помощью метода setOption. Каналы сокетов SCTP-сервера поддерживают следующие параметры:
Также могут поддерживаться дополнительные параметры, специфичные для реализации. Список поддерживаемых параметров можно получить, вызвав метод
Имя параметра Описание SCTP_INIT_MAXSTREAMSМаксимальное число потоков, запрашиваемое локальной конечной точкой при инициализации ассоциации
supportedOptions. SCTP-каналы сервера безопасно использовать из нескольких параллельных потоков.
- Начиная с:
- 1.7
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает новый экземпляр этого класса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract SctpChannel |
accept() |
Принимает ассоциацию на сокете этого канала. |
final SctpServerChannel |
bind |
Привязывает сокет канала к локальному адресу и настраивает его для прослушивания ассоциаций. |
abstract SctpServerChannel |
bind |
Привязывает сокет канала к локальному адресу и настраивает его для прослушивания ассоциаций. |
abstract SctpServerChannel |
bindAddress |
Добавляет указанный адрес к адресам, привязанным к сокету канала. |
abstract Set |
getAllLocalAddresses() |
Возвращает все адреса сокета, к которым привязан сокет этого канала. |
abstract <T> T |
getOption |
Возвращает значение параметра сокета. |
static SctpServerChannel |
open() |
Открывает SCTP-канал сервера. |
abstract <T> SctpServerChannel |
setOption |
Задает значение параметра сокета. |
abstract Set |
supportedOptions() |
Возвращает набор параметров сокета, поддерживаемых этим каналом. |
abstract SctpServerChannel |
unbindAddress |
Удаляет указанный адрес из адресов, привязанных к сокету канала. |
final int |
validOps() |
Возвращает набор операций, определяющий поддерживаемые этим каналом операции. |
Методы, объявленные в классе AbstractSelectableChannel
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register
Методы, объявленные в классе SelectableChannel
register
Методы, объявленные в классе AbstractInterruptibleChannel
begin, close, end, isOpen
Подробное описание конструкторов
SctpServerChannel
protected SctpServerChannel(SelectorProvider provider)
- Параметры:
-
provider— провайдер селектора для этого канала
Подробное описание методов
open
public static SctpServerChannel open() throws IOException
Сокет нового канала изначально не привязан; перед приемом ассоциаций его необходимо привязать к определенному адресу с помощью одного из методов 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— если возникает ошибка ввода-вывода - См. также:
setOption
public abstract <T> SctpServerChannel setOption(SctpSocketOption<T> name, T value) throws IOException
- Параметры типа:
T— тип значения параметра сокета- Параметры:
-
name— параметр сокета -
value— значение параметра сокета. Для некоторых параметров сокета значениеnullможет быть допустимым. - Возвращает:
- Этот канал
- Выбрасывает:
-
UnsupportedOperationException— если этот канал не поддерживает параметр сокета -
IllegalArgumentException— если значение недопустимо для этого параметра сокета -
ClosedChannelException— если этот канал закрыт -
IOException— если возникает ошибка ввода-вывода - См. также:
supportedOptions
public abstract Set<SctpSocketOption<?>> supportedOptions()
Этот метод продолжает возвращать набор параметров даже после закрытия канала.
- Возвращает:
- Набор параметров сокета, поддерживаемых этим каналом
validOps
public final int validOps()
SCTP-каналы сервера поддерживают только прием новых ассоциаций, поэтому этот метод возвращает SelectionKey.OP_ACCEPT.
- Определено в:
-
validOpsв классеSelectableChannel - Возвращает:
- Набор допустимых операций
© 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