Spec-Zone.ru › OpenJDK 27

Класс StandardSocketOptions

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

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

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

Начиная с:
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
Время жизни дейтаграмм многоадресной рассылки по протоколу 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
Отключить алгоритм Нейгла.

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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли какой-либо другой объект «равным» этому объекту.
protected void finalize()
Устарел и предназначен для удаления: этот элемент API может быть удалён в будущей версии.
Финализация устарела и может быть удалена в следующем выпуске.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо истечения заданного промежутка реального времени.

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

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 включён, операционная система может использовать механизм поддержания активности для периодической проверки другой стороны соединения, когда соединение в остальном бездействует. Точная семантика механизма поддержания активности зависит от системы и поэтому не определена.

Изначально этот параметр сокета имеет значение 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) в заголовках 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, равным нулю, не передаются по сети, но могут быть доставлены локально. Для сокета 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
Отключить алгоритм Нейгла.

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и рабочими примерами кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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