Spec-Zone.ru › OpenJDK 21

Класс StandardSocketOptions

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

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

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

Since:
1.7

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

Модификатор и тип Поле Описание
static final SocketOption<NetworkInterface> IP_MULTICAST_IF
Сеть интерфейсов для многоадресных дейтаграмм протокола Internet Protocol (IP).
static final SocketOption<Boolean> IP_MULTICAST_LOOP
Обратный цикл для многоадресных дейтаграмм протокола Internet Protocol (IP).
static final SocketOption<Integer> IP_MULTICAST_TTL
Время жизни (time-to-live) для многоадресных дейтаграмм протокола Internet Protocol (IP).
static final SocketOption<Integer> IP_TOS
Байт типа службы (ToS) в заголовке Internet Protocol (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) в заголовке протокола Internet Protocol (IP).

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

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

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

Внешние спецификации
  • RFC 1349: Тип обслуживания в наборе протоколов Интернета
  • RFC 2474: Определение поля дифференцированных услуг (поле DS) в заголовках 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 параметр — предельное количество пересылок (hop limit), которое дейтаграмма может пройти, прежде чем истечёт срок её действия в сети. Для сокетов 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, 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/java.base/java/net/StandardSocketOptions.html

Spec-Zone.ru

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