Интерфейс SocketOptions
- Все известные классы-реализации:
-
DatagramSocketImpl,SocketImpl
public interface SocketOptions
SocketImpl и DatagramSocketImpl. Подклассы этих двух классов должны переопределять методы getOption(int) и setOption(int, Object) этого интерфейса, чтобы поддерживать собственные параметры. Методы и константы, определённые в этом интерфейсе, предназначены только для реализации. Если вы не наследуете от SocketImpl или DatagramSocketImpl, то вы не будете использовать их напрямую. Существуют безопасные по типу методы для получения/установки каждого из этих параметров в Socket, ServerSocket, DatagramSocket и MulticastSocket.
- С момента:
- 1.1
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
IP_MULTICAST_IF |
См. StandardSocketOptions.IP_MULTICAST_IF для описания этого параметра сокета. |
static final int |
IP_MULTICAST_IF2 |
Этот параметр используется для установки и получения интерфейса отправки мультикаст-пакетов. |
static final int |
IP_MULTICAST_LOOP |
См. StandardSocketOptions.IP_MULTICAST_LOOP для описания этого параметра сокета. |
static final int |
IP_TOS |
См. StandardSocketOptions.IP_TOS для описания этого параметра сокета. |
static final int |
SO_BINDADDR |
Получение привязки локального адреса сокета. |
static final int |
SO_BROADCAST |
См. StandardSocketOptions.SO_BROADCAST для описания этого параметра сокета. |
static final int |
SO_KEEPALIVE |
См. StandardSocketOptions.SO_KEEPALIVE для описания этого параметра сокета. |
static final int |
SO_LINGER |
См. StandardSocketOptions.SO_LINGER для описания этого параметра сокета. |
static final int |
SO_OOBINLINE |
При установке этого параметра любые TCP данные срочности, полученные по сокету, будут получены через входной поток сокета. |
static final int |
SO_RCVBUF |
См. StandardSocketOptions.SO_RCVBUF для описания этого параметра сокета. |
static final int |
SO_REUSEADDR |
См. StandardSocketOptions.SO_REUSEADDR для описания этого параметра сокета. |
static final int |
SO_REUSEPORT |
См. StandardSocketOptions.SO_REUSEPORT для описания этого параметра сокета. |
static final int |
SO_SNDBUF |
См. StandardSocketOptions.SO_SNDBUF для описания этого параметра сокета. |
static final int |
SO_TIMEOUT |
Этот параметр используется для установки и получения значения таймаута для блокирующих Socket операций: ServerSocket.accept() Socket InputStream.read() DatagramSocket.receive() |
static final int |
TCP_NODELAY |
См. StandardSocketOptions.TCP_NODELAY для описания этого параметра сокета. |
Краткое описание методов
Подробное описание полей
TCP_NODELAY
@Native static final int TCP_NODELAY
StandardSocketOptions.TCP_NODELAY для описания этого параметра сокета.- См. также:
SO_BINDADDR
@Native static final int SO_BINDADDR
INADDR_ANY, что означает любой локальный адрес на хосте с несколькими интерфейсами. Хост с несколькими интерфейсами может использовать этот параметр для приема подключений только к одному из своих адресов (в случае с ServerSocket или DatagramSocket), или для указания адреса возврата для удаленного узла (в случае с Socket или DatagramSocket). Тип значения этого параметра — InetAddress.- См. также:
SO_REUSEADDR
@Native static final int SO_REUSEADDR
StandardSocketOptions.SO_REUSEADDR для описания этого параметра сокета.- См. также:
SO_REUSEPORT
@Native static final int SO_REUSEPORT
StandardSocketOptions.SO_REUSEPORT для описания этого параметра сокета.- С:
- 9
- См. также:
SO_BROADCAST
@Native static final int SO_BROADCAST
StandardSocketOptions.SO_BROADCAST для описания этого параметра сокета.- С:
- 1.4
- См. также:
IP_MULTICAST_IF
@Native static final int IP_MULTICAST_IF
StandardSocketOptions.IP_MULTICAST_IF для описания этого параметра сокета.- См. также:
IP_MULTICAST_IF2
@Native static final int IP_MULTICAST_IF2
- С:
- 1.4
- См. также:
IP_MULTICAST_LOOP
@Native static final int IP_MULTICAST_LOOP
StandardSocketOptions.IP_MULTICAST_LOOP для описания этого параметра сокета.- С:
- 1.4
- См. также:
IP_TOS
@Native static final int IP_TOS
StandardSocketOptions.IP_TOS для описания этого параметра сокета.- С:
- 1.4
- См. также:
SO_LINGER
@Native static final int SO_LINGER
StandardSocketOptions.SO_LINGER для описания этого параметра сокета. Установите значение в Boolean.FALSE или целое число меньше 0 с помощью setOption(int, Object) для отключения этого параметра. Целое число больше или равно 0 включит параметр и будет представлять интервал ожидания.
Если этот параметр включен, то getOption(int) вернёт целое число, представляющее интервал ожидания, иначе возвращается Boolean.FALSE.
- См. также:
SO_TIMEOUT
@Native static final int SO_TIMEOUT
Socket операций: Этот параметр должен быть установлен перед входом в блокирующую операцию, чтобы он вступил в силу. Если таймаут истекает и операция по-прежнему блокируется, то поднимается InterruptedIOException. Socket не закрывается в таких случаях.
- См. также:
SO_SNDBUF
@Native static final int SO_SNDBUF
StandardSocketOptions.SO_SNDBUF для описания этого параметра сокета.- См. также:
SO_RCVBUF
@Native static final int SO_RCVBUF
StandardSocketOptions.SO_RCVBUF для описания этого параметра сокета.- См. также:
SO_KEEPALIVE
@Native static final int SO_KEEPALIVE
StandardSocketOptions.SO_KEEPALIVE для описания этого параметра сокета.- См. также:
SO_OOBINLINE
@Native static final int SO_OOBINLINE
- См. также:
Подробности методов
setOption
void setOption(int optID, Object value) throws SocketException
optID. Если необходимо включить параметр, и он требует специфического для параметра "значения", то оно передается в value. Фактический тип value зависит от параметра, и передача несоответствующего типа является ошибкой: SocketImpl s;
...
s.setOption(SO_LINGER, Integer.valueOf(10));
// OK - set SO_LINGER w/ timeout of 10 sec.
s.setOption(SO_LINGER, Double.valueOf(10));
// ERROR - expects java.lang.Integer
Boolean: s.setOption(TCP_NODELAY, Boolean.TRUE);
// OK - enables TCP_NODELAY, a binary option
Boolean.FALSE: s.setOption(TCP_NODELAY, Boolean.FALSE);
// OK - disables TCP_NODELAY
s.setOption(SO_LINGER, Boolean.FALSE);
// OK - disables SO_LINGER
Boolean.FALSE, неявно включает его.- Параметры:
-
optID— идентификатор параметра -
value— параметр сокета - Исключения:
-
SocketException— если параметр не распознан, сокет закрыт или произошла ошибка низкого уровня - См. также:
getOption
Object getOption(int optID) throws SocketException
Boolean.TRUE, если включены, и Boolean.FALSE, если отключены, например: SocketImpl s;
...
Boolean noDelay = (Boolean)(s.getOption(TCP_NODELAY));
if (noDelay.booleanValue()) {
// true if TCP_NODELAY is enabled...
...
}
Для параметров, принимающих определённый тип в качестве параметра, этот метод вернёт значение параметра, иначе вернёт Boolean.FALSE:
Object o = s.getOption(SO_LINGER);
if (o instanceof Integer) {
System.out.print("Linger time is " + ((Integer)o).intValue());
} else {
// the true type of o is java.lang.Boolean.FALSE;
}
- Параметры:
-
optID—int, идентифицирующий параметр для извлечения - Возвращает:
- значение параметра
- Исключения:
-
SocketException— если сокет закрыт илиoptIDнеизвестен на протокольном стеке - См. также:
© 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/SocketOptions.html