Spec-Zone.ru › OpenJDK 25

Класс 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
Сетевой интерфейс для дейтаграмм многоадресной рассылки по Internet Protocol (IP).
static final SocketOption<Boolean> IP_MULTICAST_LOOP
Петлевая передача дейтаграмм многоадресной рассылки по Internet Protocol (IP).
static final SocketOption<Integer> IP_MULTICAST_TTL
Время жизни дейтаграмм многоадресной рассылки по 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.

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

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

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

Для дейтаграммных сокетов этот параметр позволяет нескольким программам привязываться к одному адресу. Этот параметр следует включать, если сокет будет использоваться для многоадресной рассылки по Internet Protocol (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: тип обслуживания в наборе протоколов Internet Protocol
  • RFC 2474: определение поля дифференцированного обслуживания (DS) в заголовках IPv4 и IPv6
См. также:
  • DatagramSocket.setTrafficClass(int)

IP_MULTICAST_IF

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

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

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

См. также:
  • MulticastChannel

IP_MULTICAST_TTL

public static final SocketOption<Integer> IP_MULTICAST_TTL
Время жизни дейтаграмм многоадресной рассылки по Internet Protocol (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
Петлевая передача дейтаграмм многоадресной рассылки по Internet Protocol (IP).

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

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

Изначальное значение этого параметра сокета (или значение по умолчанию) — TRUE. Реализация позволяет задавать этот параметр сокета после привязки сокета. Возможность запрашивать или изменять этот параметр до привязки сокета зависит от системы.

См. также:
  • MulticastChannel

TCP_NODELAY

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

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

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

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/StandardSocketOptions.html

Spec-Zone.ru

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