Класс SctpStandardSocketOptions
public final class SctpStandardSocketOptions extends Object
- Since:
- 1.7
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
SctpStandardSocketOptions.InitMaxStreams |
Этот класс используется для установки максимального количества входных/выходных потоков, используемых локальным конечным пунктом во время инициализации ассоциации. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final SctpSocketOption |
SCTP_DISABLE_FRAGMENTS |
Включает или выключает фрагментацию сообщений. |
static final SctpSocketOption |
SCTP_EXPLICIT_COMPLETE |
Включает или выключает явное завершение сообщений. |
static final SctpSocketOption |
SCTP_FRAGMENT_INTERLEAVE |
Fragmented interleave управляет тем, как происходит представление сообщений для получателя сообщений. |
static final SctpSocketOption |
SCTP_INIT_MAXSTREAMS |
Максимальное количество потоков, запрошенных локальным конечным пунктом во время инициализации ассоциации. |
static final SctpSocketOption |
SCTP_NODELAY |
Включает или выключает алгоритм наподобие Nagle. |
static final SctpSocketOption |
SCTP_PRIMARY_ADDR |
Запрашивает, чтобы локальный стек SCTP использовал указанный адрес узла как первичный адрес ассоциации. |
static final SctpSocketOption |
SCTP_SET_PEER_PRIMARY_ADDR |
Запрашивает, чтобы узел-партнёр отметил заключённый адрес как первичный адрес ассоциации. |
static final SctpSocketOption |
SO_LINGER |
Задержка при закрытии, если данные присутствуют. |
static final SctpSocketOption |
SO_RCVBUF |
Размер буфера приема сокета. |
static final SctpSocketOption |
SO_SNDBUF |
Размер буфера отправки сокета. |
Краткое описание методов
Подробное описание полей
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. Значение может быть получено из 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
Значение этого параметра сокета — 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, 2023, 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/21/docs/api/jdk.sctp/com/sun/nio/sctp/SctpStandardSocketOptions.html