Spec-Zone.ru › OpenJDK 24

Класс SctpStandardSocketOptions

java.lang.Object
com.sun.nio.sctp.SctpStandardSocketOptions
public final class SctpStandardSocketOptions extends Object
Каналы SCTP поддерживают параметры сокета, определенные в этом классе (а также перечисленные в конкретном классе канала), и могут поддерживать дополнительные параметры сокета, специфичные для реализации.
Since:
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
Fragmented interleave управляет тем, как происходит представление сообщений для получателя сообщений.
static final SctpSocketOption<SctpStandardSocketOptions.InitMaxStreams> SCTP_INIT_MAXSTREAMS
Максимальное количество потоков, запрошенных локальным узлом во время инициализации ассоциации.
static final SctpSocketOption<Boolean> SCTP_NODELAY
Включает или отключает алгоритм, похожий на Nagle.
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
Размер буфера отправки сокета.

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

Методы, объявленные в классе java.lang.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
Включает или отключает алгоритм, подобный алгоритму Nagle.

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

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, когда этот параметр включён для неблокирующего сокета, не определено.

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

© 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://download.java.net/java/early_access/jdk24/docs/api/jdk.sctp/com/sun/nio/sctp/SctpStandardSocketOptions.html

Spec-Zone.ru

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