Spec-Zone.ru › OpenJDK 25

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

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

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». Обратите внимание, что никакие другие сообщения из ассоциации «X», потока «Y» не будут доставляться, пока не будут прочитаны все части частично доставляемого сообщения потока «Y». Этот параметр влияет на оба типа каналов. Кроме того, для 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, 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/SctpStandardSocketOptions.html

Spec-Zone.ru

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