Класс 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 | Модификатор и тип | Метод | Описание |
|---|---|---|
final Object |
blockingLock() |
Получает объект, на котором синхронизируются методы configureBlocking и register. |
final SelectableChannel |
configureBlocking |
Изменяет режим блокировки этого канала. |
protected final void |
implCloseChannel() |
Закрывает этот канал. |
protected abstract void |
implCloseSelectableChannel() |
Закрывает этот выбираемый канал. |
protected abstract void |
implConfigureBlocking |
Изменяет режим блокировки этого канала. |
final boolean |
isBlocking() |
Показывает, будет ли каждая операция ввода-вывода в этом канале блокироваться до ее завершения. |
final boolean |
isRegistered() |
Показывает, зарегистрирован ли этот канал в данный момент у каких-либо селекторов. |
final SelectionKey |
keyFor |
Получает ключ, представляющий регистрацию канала у указанного селектора. |
final SelectorProvider |
provider() |
Возвращает поставщика, создавшего этот канал. |
final SelectionKey |
register |
Регистрирует этот канал у указанного селектора и возвращает ключ выбора. |
Методы, объявленные в классе SelectableChannel
register | Модификатор и тип | Метод | Описание |
|---|---|---|
final SelectionKey |
register |
Регистрирует этот канал у указанного селектора и возвращает ключ выбора. |
Методы, объявленные в классе AbstractInterruptibleChannel
begin, close, end, isOpen | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final void |
begin() |
Обозначает начало операции ввода-вывода, которая может блокироваться на неопределенное время. |
final void |
close() |
Закрывает этот канал. |
protected final void |
end |
Обозначает завершение операции ввода-вывода, которая может блокироваться на неопределенное время. |
final boolean |
isOpen() |
Показывает, открыт ли этот канал. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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.