Spec-Zone.ru › OpenJDK 27

Класс SctpStandardSocketOptions

java.lang.Object
com.sun.nio.sctp.SctpStandardSocketOptions
public final class SctpStandardSocketOptions extends Object
Каналы SCTP поддерживают параметры сокетов, определённые этим классом (а также перечисленные в соответствующем классе канала), и могут поддерживать дополнительные параметры сокетов, зависящие от реализации.
Начиная с:
1.7

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static class  SctpStandardSocketOptions.InitMaxStreams
Этот класс используется для задания максимального числа входящих и исходящих потоков, используемых локальной конечной точкой при инициализации ассоциации.

Краткое описание полей

Модификатор и тип Поле Описание
static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS
Включает или отключает фрагментацию сообщений.
static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE
Включает или отключает явное завершение сообщений.
static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE
Чередование фрагментов определяет, как сообщения представляются получателю.
static final SctpSocketOption<SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS
Максимальное число потоков, запрашиваемое локальной конечной точкой при инициализации ассоциации.
static final SctpSocketOption<Boolean> SCTP_NODELAY
Включает или отключает алгоритм, подобный алгоритму Нейгла.
static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR
Запрашивает, чтобы локальный стек SCTP использовал указанный адрес узла-пира в качестве основного адреса ассоциации.
static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR
Запрашивает, чтобы узел-пир отметил указанный адрес как основной адрес ассоциации.
static final SctpSocketOption<Integer> SO_LINGER
Ожидание при закрытии, если имеются данные.
static final SctpSocketOption<Integer> SO_RCVBUF
Размер буфера приёма сокета.
static final SctpSocketOption<Integer> SO_SNDBUF
Размер буфера отправки сокета.

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

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

Подробное описание полей

SCTP_DISABLE_FRAGMENTS

public static final SctpSocketOption<Boolean> SCTP_DISABLE_FRAGMENTS
Включает или отключает фрагментацию сообщений.

Значением этого параметра сокета является Boolean, которое указывает, включён или отключён параметр. Если параметр включён, фрагментация сообщений SCTP не выполняется. Вместо этого, если отправляемое сообщение превышает текущий размер PMTU, сообщение НЕ будет отправлено, а пользователь получит сообщение об ошибке.

Поддержка этого параметра зависит от реализации.

SCTP_EXPLICIT_COMPLETE

public static final SctpSocketOption<Boolean> SCTP_EXPLICIT_COMPLETE
Включает или отключает явное завершение сообщений.

Значением этого параметра сокета является Boolean, которое указывает, включён или отключён параметр. Если этот параметр включён, метод send можно вызывать несколько раз для отправки сообщения. Параметр isComplete объекта MessageInfo должен иметь значение true только при последней отправке, чтобы указать, что сообщение завершено. Если этот параметр отключён, каждый отдельный вызов send считается завершённым.

Значение параметра по умолчанию — false, что означает, что параметр отключён. Поддержка этого параметра зависит от реализации.

SCTP_FRAGMENT_INTERLEAVE

public static final SctpSocketOption<Integer> SCTP_FRAGMENT_INTERLEAVE
Чередование фрагментов определяет, как сообщения представляются получателю. Определены три уровня чередования фрагментов. Два уровня влияют на SctpChannel, а на SctpMultiChannel влияют все три уровня.

Этот параметр принимает значение Integer. Ему можно задать значение 0, 1 или 2.

Настройка трёх уровней определяет следующее поведение получателя:

level 0 — Запрещает чередование любых сообщений. Это означает, что после начала частичной доставки другие сообщения не принимаются, кроме сообщения, доставляемого частями. Если поступает другое сообщение по иному потоку (или ассоциации), которое можно было бы доставить, оно будет заблокировано, пока пользователь не прочитает всё сообщение, доставляемое частями.

level 1 — Разрешает чередование сообщений из разных ассоциаций. Для SctpChannel уровни 0 и 1 имеют одинаковое значение, поскольку SctpChannel всегда получает сообщения из одной и той же ассоциации. Обратите внимание: установка этого уровня для SctpMultiChannel может привести к частичной доставке нескольких сообщений из разных ассоциаций, но для каждой отдельной ассоциации будет доставляться только одно сообщение, пока не будут получены все его части. Это означает, что чтение одного большого сообщения с идентификатором ассоциации «X» заблокирует доставку других сообщений ассоциации «X».

level 2 — Разрешает полное чередование сообщений. При этом уровне отправитель должен внимательно учитывать не только узел-пир Association, но и номер потока. Если этот параметр включён, частично доставляемое сообщение может начать поступать для ассоциации «X» и потока «Y», а следующий вызов получения может вернуть сообщение для ассоциации «X» и потока «Z». Обратите внимание: другие сообщения для потока «Y» ассоциации «X» не будут доставляться, пока не будут прочитаны все части частично доставляемого сообщения этого потока. Этот параметр влияет на оба типа каналов. Кроме того, для SctpMultiChannel при следующем вызове получения может быть доставлено не только сообщение другого потока той же ассоциации, но и сообщение другой ассоциации.

Поддержка этого параметра зависит от реализации.

SCTP_INIT_MAXSTREAMS

public static final SctpSocketOption<SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS
Максимальное число потоков, запрашиваемое локальной конечной точкой при инициализации ассоциации.

Значением этого параметра сокета является InitMaxStreams, которое задаёт максимальное число входящих и исходящих потоков, поддержку которых готова обеспечить ассоциация на канале.

Для SctpChannel этот параметр можно использовать только для изменения числа входящих и исходящих потоков до подключения.

Для SctpMultiChannel этот параметр определяет максимальное число входящих и исходящих потоков, поддержку которых будут обеспечивать новые ассоциации, установленные на канале.

Для SctpServerChannel этот параметр определяет максимальное число входящих и исходящих потоков, о котором будут договариваться принимаемые сокеты с подключающимися узлами-пирами.

Во всех случаях значение этого параметра используется при согласовании новых ассоциаций, устанавливаемых на сокете канала; фактическое максимальное число входящих и исходящих потоков, согласованное с узлом-пиром, можно получить из соответствующего Association. Значение Association можно получить из уведомления COMM_UP типа AssociationChangeNotification, относящегося к этой ассоциации.

Это значение ограничено возможностями реализации. Иными словами, пользователь может запросить поддержку большего числа потоков, чем поддерживает операционная система. В таком случае ограничение операционной системы может иметь приоритет над запрошенным пользователем значением. Значение по умолчанию 0 указывает на использование значения по умолчанию для конечных точек.

SCTP_NODELAY

public static final SctpSocketOption<Boolean> SCTP_NODELAY
Включает или отключает алгоритм, подобный алгоритму Нейгла.

Значением этого параметра сокета является Boolean, которое указывает, включён или отключён параметр. SCTP использует алгоритм, подобный алгоритму Нейгла, для объединения коротких сегментов и повышения эффективности сети.

SCTP_PRIMARY_ADDR

public static final SctpSocketOption<SocketAddress> SCTP_PRIMARY_ADDR
Запрашивает, чтобы локальный стек SCTP использовал указанный адрес узла-пира в качестве основного адреса ассоциации.

Значением этого параметра сокета является SocketAddress, задающий адрес узла-пира, который локальный стек SCTP должен использовать в качестве основного адреса ассоциации. Этот адрес должен быть одним из адресов узла-пира в ассоциации.

SctpMultiChannel может управлять несколькими ассоциациями, поэтому при установке или получении этого параметра необходимо указать параметр ассоциации.

Поскольку SctpChannel управляет только одной ассоциацией, параметр ассоциации не требуется, и этот параметр можно установить или запросить напрямую.

SCTP_SET_PEER_PRIMARY_ADDR

public static final SctpSocketOption<SocketAddress> SCTP_SET_PEER_PRIMARY_ADDR
Запрашивает, чтобы узел-пир отметил указанный адрес как основной адрес ассоциации.

Значением этого параметра сокета является SocketAddress, задающий локальный адрес, который узел-пир должен использовать в качестве основного. Указанный адрес должен быть одним из локальных адресов, привязанных к ассоциации.

SctpMultiChannel может управлять несколькими ассоциациями, поэтому при установке или получении этого параметра необходимо указать параметр ассоциации.

Поскольку SctpChannel управляет только одной ассоциацией, параметр ассоциации не требуется, и этот параметр можно запросить напрямую.

Обратите внимание: этот параметр предназначен только для установки, и его нельзя получить с помощью getOption. Поддержка этого параметра зависит от реализации.

SO_SNDBUF

public static final SctpSocketOption<Integer> SO_SNDBUF
Размер буфера отправки сокета.

Значением этого параметра сокета является Integer, задающее размер буфера отправки сокета в байтах. Буфер отправки сокета — это выходной буфер, используемый сетевой реализацией. Для соединений с большим объёмом трафика может потребоваться увеличить его размер. Значение параметра сокета служит для реализации рекомендацией по размеру буфера, поэтому фактический размер может отличаться. Чтобы получить фактический размер, можно запросить значение параметра сокета.

Для SctpChannel этот параметр задаёт объём данных, которые стек SCTP может удерживать во внутренних буферах в ожидании отправки. Поэтому он ограничивает максимальный размер данных, отправляемых за один вызов отправки.

Для SctpMultiChannel действует то же, что и для SctpChannel, за исключением того, что параметр применяется ко всем ассоциациям. Параметр отдельно применяется к размеру окна каждой ассоциации.

Реализация позволяет установить этот параметр сокета до привязки или подключения сокета. Возможность изменить буфер отправки сокета после привязки зависит от системы.

SO_RCVBUF

public static final SctpSocketOption<Integer> SO_RCVBUF
Размер буфера приёма сокета.

Значением этого параметра сокета является Integer, задающее размер буфера приёма сокета в байтах. Буфер приёма сокета — это входной буфер, используемый сетевой реализацией. Для соединений с большим объёмом трафика может потребоваться увеличить его размер или уменьшить его, чтобы ограничить возможный объём ожидающих обработки входящих данных. Значение параметра сокета служит для реализации рекомендацией по размеру буфера, поэтому фактический размер может отличаться.

Для SctpChannel этот параметр задаёт размер окна приёма.

Для SctpMultiChannel значение зависит от реализации. Параметр может задавать буфер приёма для каждой ассоциации, привязанной к дескриптору сокета, либо буфер приёма для всего сокета.

Реализация позволяет установить этот параметр сокета до привязки или подключения сокета. Возможность изменить буфер приёма сокета после привязки зависит от системы.

SO_LINGER

public static final SctpSocketOption<Integer> SO_LINGER
Ожидание при закрытии, если имеются данные.

Значением этого параметра сокета является Integer, которое определяет действие при наличии в очереди сокета неотправленных данных и вызове метода закрытия сокета. Если значение параметра сокета равно нулю или больше нуля, оно задаёт время ожидания в секундах, называемое интервалом ожидания. Интервал ожидания — это время, в течение которого метод close блокируется, пока операционная система пытается передать неотправленные данные или определяет, что передать их невозможно. Если значение параметра сокета меньше нуля, параметр отключён. В этом случае метод close не ожидает передачи неотправленных данных; если возможно, операционная система передаст все неотправленные данные до закрытия соединения.

Этот параметр сокета предназначен только для сокетов, настроенных в blocking-режиме. Поведение метода close при включённом параметре для неблокирующего сокета не определено.

Начальное значение этого параметра сокета отрицательное, то есть параметр отключён. Параметр можно включить или изменить интервал ожидания в любое время. Максимальное значение интервала ожидания зависит от системы. Если задать интервал ожидания, превышающий его максимальное значение, он будет установлен в максимальное значение.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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