Класс SctpStandardSocketOptions
public final class SctpStandardSocketOptions extends Object
- Начиная с версии:
- 1.7
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
SctpStandardSocketOptions.InitMaxStreams |
Этот класс используется для задания максимального количества входящих и исходящих потоков, используемых локальной конечной точкой при инициализации ассоциации. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final SctpSocketOption |
SCTP_DISABLE_FRAGMENTS |
Включает или отключает фрагментацию сообщений. |
static final SctpSocketOption |
SCTP_EXPLICIT_COMPLETE |
Включает или отключает явное завершение сообщений. |
static final SctpSocketOption |
SCTP_FRAGMENT_INTERLEAVE |
Чередование фрагментов определяет порядок представления сообщений получателю. |
static final SctpSocketOption |
SCTP_INIT_MAXSTREAMS |
Максимальное количество потоков, запрашиваемое локальной конечной точкой при инициализации ассоциации. |
static final SctpSocketOption |
SCTP_NODELAY |
Включает или отключает алгоритм, подобный алгоритму Нагла. |
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. Объект 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, 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