Интерфейс 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/SocketOptions.html