Класс DatagramSocketImpl
java.lang.Object
java.net.DatagramSocketImpl
- Все реализуемые интерфейсы:
SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
Базовый абстрактный класс реализации дейтаграммных и многоадресных сокетов.
- Начиная с версии:
- 1.1
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected FileDescriptor |
fd |
Объект дескриптора файла. |
protected int |
localPort |
Номер локального порта. |
Поля, объявленные в интерфейсе SocketOptions
IP_MULTICAST_IF, IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS, SO_BINDADDR, SO_BROADCAST, SO_KEEPALIVE, SO_LINGER, SO_OOBINLINE, SO_RCVBUF, SO_REUSEADDR, SO_REUSEPORT, SO_SNDBUF, SO_TIMEOUT, TCP_NODELAY | Модификатор и тип | Поле | Описание |
|---|---|---|
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. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
DatagramSocketImpl() |
Конструктор, вызываемый подклассами. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected abstract void |
bind |
Привязывает дейтаграммный сокет к локальному порту и адресу. |
protected abstract void |
close() |
Закрывает сокет. |
protected void |
connect |
Подключает дейтаграммный сокет к удалённому узлу назначения. |
protected abstract void |
create() |
Создаёт дейтаграммный сокет. |
protected void |
disconnect() |
Отключает дейтаграммный сокет от удалённого узла назначения. |
protected FileDescriptor |
getFileDescriptor() |
Возвращает дескриптор файла дейтаграммного сокета. |
protected int |
getLocalPort() |
Возвращает локальный порт. |
protected <T> T |
getOption |
Вызывается для получения параметра сокета. |
protected abstract int |
getTimeToLive() |
Получает параметр TTL (время жизни). |
protected abstract void |
join |
Вступает в многоадресную группу. |
protected abstract void |
joinGroup |
Вступает в многоадресную группу. |
protected abstract void |
leave |
Покидает многоадресную группу. |
protected abstract void |
leaveGroup |
Покидает многоадресную группу. |
protected abstract int |
peek |
Просматривает пакет, чтобы определить его отправителя. |
protected abstract int |
peekData |
Просматривает пакет, чтобы определить его отправителя. |
protected abstract void |
receive |
Получает пакет дейтаграммы. |
protected abstract void |
send |
Отправляет пакет дейтаграммы. |
protected <T> void |
setOption |
Вызывается для установки параметра сокета. |
protected abstract void |
setTimeToLive |
Устанавливает параметр TTL (время жизни). |
protected Set |
supportedOptions() |
Возвращает набор SocketOptions, поддерживаемых этой реализацией и её сокетом (DatagramSocket или MulticastSocket). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание полей
localPort
protected int localPort
Номер локального порта.
fd
protected FileDescriptor fd
Объект дескриптора файла.
Подробное описание конструкторов
DatagramSocketImpl
public DatagramSocketImpl()
Конструктор, вызываемый подклассами.
Подробное описание методов
create
protected abstract void create() throws SocketException
Создаёт дейтаграммный сокет.
- Выбрасывает:
-
SocketException— если в базовом протоколе произошла ошибка, например ошибка TCP.
bind
protected abstract void bind(int lport, InetAddress laddr) throws SocketException
Привязывает дейтаграммный сокет к локальному порту и адресу.
- Параметры:
-
lport— локальный порт -
laddr— локальный адрес - Выбрасывает:
-
SocketException— если в базовом протоколе произошла ошибка, например ошибка TCP.
send
protected abstract void send(DatagramPacket p) throws IOException
Отправляет пакет дейтаграммы. Пакет содержит данные и адрес назначения, куда его следует отправить.
- Параметры:
-
p— отправляемый пакет. - Выбрасывает:
-
IOException— если при отправке пакета дейтаграммы произошла ошибка ввода-вывода. -
PortUnreachableException— может быть выброшено, если сокет подключён к узлу назначения, который в данный момент недоступен. Обратите внимание: гарантий выбрасывания исключения нет.
connect
protected void connect(InetAddress address, int port) throws SocketException
Подключает дейтаграммный сокет к удалённому узлу назначения. Связывает удалённый адрес с локальным сокетом, чтобы дейтаграммы можно было отправлять только этому узлу назначения и получать только от него. Этот метод можно переопределить, чтобы вызвать системную функцию connect.
Если удалённый узел назначения, к которому подключён сокет, не существует или недоступен по иной причине и для этого адреса получен пакет ICMP о недоступности узла назначения, последующий вызов send или receive может привести к выбрасыванию PortUnreachableException. Обратите внимание: гарантий выбрасывания исключения нет.
- Требования к реализации:
- Реализация этого метода по умолчанию выбрасывает
SocketException. - Параметры:
-
address— удалённый InetAddress для подключения -
port— номер удалённого порта - Выбрасывает:
-
SocketException— может быть выброшено, если сокет не удаётся подключить к удалённому узлу назначения - Начиная с версии:
- 1.4
disconnect
protected void disconnect()
Отключает дейтаграммный сокет от удалённого узла назначения.
- Требования к реализации:
- Реализация этого метода по умолчанию выбрасывает
UncheckedIOException. - Выбрасывает:
-
UncheckedIOException— если отключение не удалось или реализация отсутствует - Начиная с версии:
- 1.4
peek
protected abstract int peek(InetAddress i) throws IOException
Просматривает пакет, чтобы определить его отправителя. Обновляет указанный
InetAddress, записывая в него адрес, с которого пришёл пакет.- Параметры:
-
i— объект InetAddress - Возвращает:
- номер порта, с которого пришёл пакет.
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода -
PortUnreachableException— может быть выброшено, если сокет подключён к узлу назначения, который в данный момент недоступен. Обратите внимание: гарантий выбрасывания исключения нет.
peekData
protected abstract int peekData(DatagramPacket p) throws IOException
Просматривает пакет, чтобы определить его отправителя. Данные копируются в указанный
DatagramPacket. Данные возвращаются, но не извлекаются, поэтому при последующем вызове peekData/receive будут доступны те же данные.- Параметры:
-
p— полученный пакет. - Возвращает:
- номер порта, с которого пришёл пакет.
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода -
PortUnreachableException— может быть выброшено, если сокет подключён к узлу назначения, который в данный момент недоступен. Обратите внимание: гарантий выбрасывания исключения нет. - Начиная с версии:
- 1.4
receive
protected abstract void receive(DatagramPacket p) throws IOException
Получает пакет дейтаграммы.
- Параметры:
-
p— полученный пакет. - Выбрасывает:
-
IOException— если при получении пакета дейтаграммы произошла ошибка ввода-вывода. -
PortUnreachableException— может быть выброшено, если сокет подключён к узлу назначения, который в данный момент недоступен. Обратите внимание: гарантий выбрасывания исключения нет.
setTimeToLive
protected abstract void setTimeToLive(int ttl) throws IOException
Устанавливает параметр TTL (время жизни).
- Параметры:
-
ttl—int, задающий значение времени жизни - Выбрасывает:
-
IOException— если при установке параметра времени жизни произошла ошибка ввода-вывода. - См. также:
getTimeToLive
protected abstract int getTimeToLive() throws IOException
Получает параметр TTL (время жизни).
- Возвращает:
int, представляющий значение времени жизни- Выбрасывает:
-
IOException— если при получении параметра времени жизни произошла ошибка ввода-вывода - См. также:
join
protected abstract void join(InetAddress inetaddr) throws IOException
Вступает в многоадресную группу.
- Параметры:
-
inetaddr— адрес многоадресной рассылки, к которому следует присоединиться. - Выбрасывает:
-
IOException— если при присоединении к многоадресной группе произошла ошибка ввода-вывода.
leave
protected abstract void leave(InetAddress inetaddr) throws IOException
Покидает многоадресную группу.
- Параметры:
-
inetaddr— адрес многоадресной рассылки, группу которого следует покинуть. - Выбрасывает:
-
IOException— если при выходе из многоадресной группы произошла ошибка ввода-вывода.
joinGroup
protected abstract void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
Вступает в многоадресную группу.
- Параметры:
-
mcastaddr— адрес группы, к которой следует присоединиться. -
netIf— локальный интерфейс для получения пакетов дейтаграмм многоадресной рассылки - Выбрасывает:
-
IOException— если при присоединении к многоадресной группе произошла ошибка ввода-вывода - Начиная с версии:
- 1.4
leaveGroup
protected abstract void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
Покидает многоадресную группу.
- Параметры:
-
mcastaddr— адрес группы, которую следует покинуть. -
netIf— локальный интерфейс, через который следует покинуть группу - Выбрасывает:
-
IOException— если при выходе из многоадресной группы произошла ошибка ввода-вывода - Начиная с версии:
- 1.4
close
protected abstract void close()
Закрывает сокет.
getLocalPort
protected int getLocalPort()
Возвращает локальный порт.
- Возвращает:
int, представляющий значение локального порта
getFileDescriptor
protected FileDescriptor getFileDescriptor()
Возвращает дескриптор файла дейтаграммного сокета.
- Возвращает:
- объект
FileDescriptor, представляющий дескриптор файла дейтаграммного сокета
setOption
protected <T> void setOption(SocketOption<T> name, T value) throws IOException
Вызывается для установки параметра сокета.
- Требования к реализации:
- Реализация этого метода по умолчанию сначала проверяет, что заданный параметр сокета
nameне равен null, а затем выбрасываетUnsupportedOperationException. Подклассам следует переопределить этот метод, предоставив подходящую реализацию. - Параметры типа:
T— тип значения параметра сокета- Параметры:
-
name— параметр сокета -
value— значение параметра сокета. Для некоторых параметров допустимым может быть значениеnull. - Выбрасывает:
-
UnsupportedOperationException— если DatagramSocketImpl не поддерживает этот параметр -
IllegalArgumentException— если значение недопустимо для этого параметра -
IOException— если произошла ошибка ввода-вывода или сокет закрыт -
NullPointerException— если имя равноnull - Начиная с версии:
- 9
getOption
protected <T> T getOption(SocketOption<T> name) throws IOException
Вызывается для получения параметра сокета.
- Требования к реализации:
- Реализация этого метода по умолчанию сначала проверяет, что заданный параметр сокета
nameне равен null, а затем выбрасываетUnsupportedOperationException. Подклассам следует переопределить этот метод, предоставив подходящую реализацию. - Параметры типа:
T— тип значения параметра сокета- Параметры:
-
name— параметр сокета - Возвращает:
- параметр сокета
- Выбрасывает:
-
UnsupportedOperationException— если DatagramSocketImpl не поддерживает этот параметр -
IOException— если произошла ошибка ввода-вывода или сокет закрыт -
NullPointerException— если имя равноnull - Начиная с версии:
- 9
supportedOptions
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и её сокетом (DatagramSocket или MulticastSocket).
- Требования к реализации:
- Реализация этого метода по умолчанию возвращает пустой набор. Подклассам следует переопределить этот метод, предоставив подходящую реализацию.
- Возвращает:
- набор SocketOptions
- Начиная с версии:
- 9
© 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.