Spec-Zone.ru › OpenJDK 24

Класс StandardSocketOptions

java.lang.Object
java.net.StandardSocketOptions
public final class StandardSocketOptions extends Object
Определяет стандартные параметры сокета.

Имя каждого параметра сокета, определённого в этом классе, является именем его поля.

В этом выпуске параметры сокета, определённые здесь, используются каналами network в пакете channels.

Since:
1.7

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

Модификатор и тип Поле Описание
static final SocketOption<NetworkInterface> IP_MULTICAST_IF
Сеть интерфейсов для мультиадресных дейтаграмм Интернет-протокола (IP).
static final SocketOption<Boolean> IP_MULTICAST_LOOP
Обратная петля для мультиадресных дейтаграмм Интернет-протокола (IP).
static final SocketOption<Integer> IP_MULTICAST_TTL
Время жизни (time-to-live) для мультиадресных дейтаграмм Интернет-протокола (IP).
static final SocketOption<Integer> IP_TOS
Байт типа обслуживания (ToS) в заголовке Интернет-протокола (IP).
static final SocketOption<Boolean> SO_BROADCAST
Разрешить передачу широковещательных дейтаграмм.
static final SocketOption<Boolean> SO_KEEPALIVE
Поддерживать соединение активным.
static final SocketOption<Integer> SO_LINGER
Задержка при закрытии, если данные присутствуют.
static final SocketOption<Integer> SO_RCVBUF
Размер буфера приема сокета.
static final SocketOption<Boolean> SO_REUSEADDR
Использовать адрес повторно.
static final SocketOption<Boolean> SO_REUSEPORT
Использовать порт повторно.
static final SocketOption<Integer> SO_SNDBUF
Размер буфера отправки сокета.
static final SocketOption<Boolean> TCP_NODELAY
Отключить алгоритм Nagle.

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

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

SO_BROADCAST

public static final SocketOption<Boolean> SO_BROADCAST
Разрешить передачу широковещательных дейтаграмм.

Значение этого сокет-параметра — это Boolean, которое указывает, включен или выключен параметр. Параметр специфичен для сокетов, ориентированных на дейтаграммы, отправляющих на IPv4 широковещательные адреса. Если сокет-параметр включен, то сокет можно использовать для отправки широковещательных дейтаграмм.

Начальное значение этого сокет-параметра — FALSE. Сокет-параметр можно включить или выключить в любое время. Некоторые операционные системы могут потребовать, чтобы виртуальная машина Java запускалась с реализуемыми привилегиями для активации этого параметра или отправки широковещательных дейтаграмм.

Внешние спецификации
  • RFC 919: Передача широковещательных интернет-дейтаграмм
См. также:
  • RFC 929: Передача широковещательных интернет-дейтаграмм
  • DatagramSocket.setBroadcast(boolean)

SO_KEEPALIVE

public static final SocketOption<Boolean> SO_KEEPALIVE
Поддерживать соединение активным.

Значение этого сокет-параметра — это Boolean, которое указывает, включен или выключен параметр. Когда параметр SO_KEEPALIVE включен, операционная система может использовать механизм keep-alive для периодического зондирования другого конца соединения, когда соединение в противном случае простаивает. Точные семантика механизма keep-alive зависят от системы и поэтому не определены.

Начальное значение этого сокет-параметра — FALSE. Сокет-параметр можно включить или выключить в любое время.

Внешние спецификации
  • RFC 1122: Требования к интернет-хостам - Слой коммуникаций
См. также:
  • RFC 1122 Требования к интернет-хостам -- Слой коммуникаций
  • Socket.setKeepAlive(boolean)

SO_SNDBUF

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

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

Для сокетов, ориентированных на дейтаграммы, размер буфера отправки может ограничивать размер дейтаграмм, которые может отправлять сокет. Отправляются или отбрасываются дейтаграммы, превышающие размер буфера, зависит от системы.

Начальный/стандартный размер буфера отправки сокета и диапазон допустимых значений зависят от системы, хотя отрицательный размер недопустим. Попытка установить буфер отправки сокета больше, чем его максимальный размер, приводит к установке его на максимальный размер.

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

См. также:
  • Socket.setSendBufferSize(int)

SO_RCVBUF

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

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

Для сокетов, ориентированных на дейтаграммы, размер буфера приема может ограничивать размер дейтаграмм, которые могут быть получены. Возможность приема дейтаграмм, превышающих размер буфера, зависит от системы. Увеличение буфера приема сокета может быть важным в тех случаях, когда дейтаграммы поступают группами быстрее, чем они могут быть обработаны.

В случае сокетов, ориентированных на потоки, и протокола TCP/IP, размер буфера приема сокета может использоваться при объявлении размера TCP окна приема удалённому узлу.

Начальный/стандартный размер буфера приема сокета и диапазон допустимых значений зависят от системы, хотя отрицательный размер недопустим. Попытка установить буфер приема сокета больше, чем его максимальный размер, приводит к установке его на максимальный размер.

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

Внешние спецификации
  • RFC 1323: Расширения TCP для высокой производительности
См. также:
  • RFC 1323: Расширения TCP для высокой производительности
  • Socket.setReceiveBufferSize(int)
  • ServerSocket.setReceiveBufferSize(int)

SO_REUSEADDR

public static final SocketOption<Boolean> SO_REUSEADDR
Использовать адрес повторно.

Значение этого сокет-параметра — это Boolean, которое указывает, включен или выключен параметр. Точные семантика этого сокет-параметра зависят от типа сокета и системы.

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

Для сокетов, ориентированных на дейтаграммы, сокет-параметр используется для разрешения множественным программам привязки к одному и тому же адресу. Этот параметр следует включать, когда сокет будет использоваться для интернет-протокола (IP) многоадресной рассылки.

Реализация позволяет устанавливать этот сокет-параметр до привязки или подключения сокета. Изменение значения этого сокет-параметра после привязки сокета не имеет эффекта. Значение по умолчанию этого сокет-параметра зависит от системы.

Внешние спецификации
  • RFC 793: Протокол управления передачей
См. также:
  • RFC 793: Протокол управления передачей
  • ServerSocket.setReuseAddress(boolean)

SO_REUSEPORT

public static final SocketOption<Boolean> SO_REUSEPORT
Использовать порт повторно.

Значение этого сокет-параметра — это Boolean, которое указывает, включен или выключен параметр. Точные семантика этого сокет-параметра зависят от типа сокета и системы.

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

Для сокетов, ориентированных на дейтаграммы, сокет-параметр обычно позволяет нескольким сокетам UDP быть привязанными к одному и тому же адресу и порту.

Реализация позволяет устанавливать этот сокет-параметр до привязки или подключения сокета. Изменение значения этого сокет-параметра после привязки сокета не имеет эффекта.

С момента:
9

SO_LINGER

public static final SocketOption<Integer> SO_LINGER
Задержка при закрытии, если данные присутствуют.

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

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

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

См. также:
  • Socket.setSoLinger(boolean, int)

IP_TOS

public static final SocketOption<Integer> IP_TOS
Байт типа обслуживания (ToS) в заголовке протокола Интернета (IP).

Значение этого параметра сокета — Integer, представляющее значение байта ToS в пакетах IP, отправляемых сокетами в сокет IPv4. Интерпретация байта ToS зависит от сети и не определена этим классом. Дополнительную информацию о байте ToS можно найти в RFC 1349 и RFC 2474. Значение параметра сокета является подсказкой. Реализация может игнорировать это значение или определённые его значения.

Начальное/стандартное значение поля TOS в байте ToS зависит от реализации, но обычно будет 0. Для сокетов, ориентированных на дейтаграммы, параметр может быть настроен в любое время после привязки сокета. Новое значение байта используется при отправке последующих дейтаграмм. Зависит от системы, можно ли запросить или изменить этот параметр до привязки сокета.

Поведение этого параметра сокета в сокете, ориентированном на поток, или в сокете IPv6, не определено в этом выпуске.

Внешние спецификации
  • RFC 1349: Тип обслуживания в наборе протоколов Интернета
  • RFC 2474: Определение поля дифференцированных служб (DS Field) в заголовках IPv4 и IPv6
См. также:
  • DatagramSocket.setTrafficClass(int)

IP_MULTICAST_IF

public static final SocketOption<NetworkInterface> IP_MULTICAST_IF
Сетевой интерфейс для дейтаграмм мультиадресной рассылки протокола Интернета (IP).

Значение этого параметра сокета — NetworkInterface, представляющее исходящий интерфейс для дейтаграмм мультиадресной рассылки, отправляемых сокетом, ориентированным на дейтаграммы. Для сокетов IPv6 тогда зависит от системы, устанавливает ли установка этого параметра также исходящий интерфейс для дейтаграмм мультиадресной рассылки, отправленных на адреса IPv4.

Начальное/стандартное значение этого параметра сокета может быть null, чтобы указать, что исходящий интерфейс будет выбран операционной системой, как правило, на основе таблиц маршрутизации сети. Реализация позволяет установить этот параметр сокета после привязки сокета. Зависит от системы, можно ли запросить или изменить параметр сокета до привязки сокета.

См. также:
  • MulticastChannel

IP_MULTICAST_TTL

public static final SocketOption<Integer> IP_MULTICAST_TTL
Срок жизни для дейтаграмм мультиадресной рассылки протокола Интернета (IP).

Значение этого параметра сокета — Integer в диапазоне 0 <= value <= 255. Оно используется для управления областью действия дейтаграмм мультиадресной рассылки, отправляемых сокетом, ориентированным на дейтаграммы. В случае сокета IPv4 параметр — срок жизни (TTL) дейтаграмм мультиадресной рассылки, отправляемых сокетом. Дейтаграммы с TTL 0 не передаются в сеть, но могут быть доставлены локально. В случае сокета IPv6 параметр — предел перехода, который является количеством переходов, которые может пройти дейтаграмма, прежде чем истечёт срок её действия в сети. Для IPv6-сокетов зависит от системы, устанавливает ли параметр также срок жизни дейтаграмм мультиадресной рассылки, отправленных на адреса IPv4.

Начальное/стандартное значение срока жизни обычно 1. Реализация позволяет установить этот параметр сокета после привязки сокета. Зависит от системы, можно ли запросить или изменить параметр сокета до привязки сокета.

См. также:
  • MulticastChannel
  • MulticastSocket.setTimeToLive(int)

IP_MULTICAST_LOOP

public static final SocketOption<Boolean> IP_MULTICAST_LOOP
Возврат для дейтаграмм мультиадресной рассылки протокола Интернета (IP).

Значение этого параметра сокета — Boolean, которое управляет возвратом дейтаграмм мультиадресной рассылки. Значение параметра сокета показывает, включён или выключен параметр.

Точные семантики этого параметра сокета зависят от системы. В частности, зависит от системы, относится ли возврат к дейтаграммам мультиадресной рассылки, отправленным сокетом, или полученным сокетом. Для сокетов IPv6 тогда зависит от системы, применяется ли параметр также к дейтаграммам мультиадресной рассылки, отправленным на адреса IPv4.

Начальное/стандартное значение этого параметра сокета — TRUE. Реализация позволяет установить этот параметр сокета после привязки сокета. Зависит от системы, можно ли запросить или изменить параметр сокета до привязки сокета.

См. также:
  • MulticastChannel

TCP_NODELAY

public static final SocketOption<Boolean> TCP_NODELAY
Отключение алгоритма Nagle.

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

Значение по умолчанию для этого параметра сокета — FALSE. Параметр сокета следует включать только в тех случаях, когда известно, что объединение влияет на производительность. Параметр сокета может быть включён в любое время. Другими словами, алгоритм Nagle можно отключить. После включения параметра зависит от системы, можно ли его отключить. Если нельзя, вызов метода setOption для отключения параметра не оказывает никакого влияния.

Внешние спецификации
  • RFC 1122: Требования к хостам интернета — Сетевые слои
См. также:
  • RFC 1122: Требования к хостам Интернета — Сетевые уровни
  • Socket.setTcpNoDelay(boolean)

© 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/java.base/java/net/StandardSocketOptions.html

Spec-Zone.ru

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