Spec-Zone.ru › OpenJDK 8

Класс StandardSocketOptions

  • java.lang.Object
    • java.net.StandardSocketOptions

public final class StandardSocketOptions
extends Object

Определяет стандартные опции сокета.

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

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

С момента:
1.7

Поля

Модификатор и тип Поле и описание
static SocketOption<NetworkInterface> IP_MULTICAST_IF

Сеть интерфейсов для мультивещательных данных Internet Protocol (IP).

static SocketOption<Boolean> IP_MULTICAST_LOOP

Петля обратной связи для мультивещательных данных Internet Protocol (IP).

static SocketOption<Integer> IP_MULTICAST_TTL

Время жизни для мультивещательных данных Internet Protocol (IP).

static SocketOption<Integer> IP_TOS

Байт типа обслуживания (ToS) в заголовке Internet Protocol (IP).

static SocketOption<Boolean> SO_BROADCAST

Разрешить передачу широковещательных данных.

static SocketOption<Boolean> SO_KEEPALIVE

Поддерживать соединение активным.

static SocketOption<Integer> SO_LINGER

Задержка при закрытии, если присутствуют данные.

static SocketOption<Integer> SO_RCVBUF

Размер буфера приема сокета.

static SocketOption<Boolean> SO_REUSEADDR

Повторно использовать адрес.

static SocketOption<Integer> SO_SNDBUF

Размер буфера отправки сокета.

static 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 929: Трансляция дейтограмм в Интернете, DatagramSocket.setBroadcast(boolean)

SO_KEEPALIVE

public static final SocketOption<Boolean> SO_KEEPALIVE

Поддерживать соединение живым.

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

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

См. также:
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 для высокой производительности, Socket.setReceiveBufferSize(int), ServerSocket.setReceiveBufferSize(int)

SO_REUSEADDR

public static final SocketOption<Boolean> SO_REUSEADDR

Использование адреса повторно.

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

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

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

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

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

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, не определено в этом выпуске.

См. также:
DatagramSocket.setTrafficClass(int)

IP_MULTICAST_IF

public static final SocketOption<NetworkInterface> IP_MULTICAST_IF

Сетевой интерфейс для IP-мультивещания дейтограмм.

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

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

См. также:
MulticastChannel, MulticastSocket.setInterface(java.net.InetAddress)

IP_MULTICAST_TTL

public static final SocketOption<Integer> IP_MULTICAST_TTL

Время жизни (time-to-live) для мультиадресных дейтаграмм протокола IP.

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

TCP_NODELAY

public static final SocketOption<Boolean> TCP_NODELAY

Отключение алгоритма Nagle.

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

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

См. также:
RFC 1122: Требования к хостам Интернета — Сетевые уровни, Socket.setTcpNoDelay(boolean)

© 1993, 2020, 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.

Spec-Zone.ru

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