Spec-Zone.ru › OpenJDK 27

Класс 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(int lport, InetAddress laddr)
Привязывает дейтаграммный сокет к локальному порту и адресу.
protected abstract void close()
Закрывает сокет.
protected void connect(InetAddress address, int port)
Подключает дейтаграммный сокет к удалённому узлу назначения.
protected abstract void create()
Создаёт дейтаграммный сокет.
protected void disconnect()
Отключает дейтаграммный сокет от удалённого узла назначения.
protected FileDescriptor getFileDescriptor()
Возвращает дескриптор файла дейтаграммного сокета.
protected int getLocalPort()
Возвращает локальный порт.
protected <T> T getOption(SocketOption<T> name)
Вызывается для получения параметра сокета.
protected abstract int getTimeToLive()
Получает параметр TTL (время жизни).
protected abstract void join(InetAddress inetaddr)
Вступает в многоадресную группу.
protected abstract void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf)
Вступает в многоадресную группу.
protected abstract void leave(InetAddress inetaddr)
Покидает многоадресную группу.
protected abstract void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf)
Покидает многоадресную группу.
protected abstract int peek(InetAddress i)
Просматривает пакет, чтобы определить его отправителя.
protected abstract int peekData(DatagramPacket p)
Просматривает пакет, чтобы определить его отправителя.
protected abstract void receive(DatagramPacket p)
Получает пакет дейтаграммы.
protected abstract void send(DatagramPacket p)
Отправляет пакет дейтаграммы.
protected <T> void setOption(SocketOption<T> name, T value)
Вызывается для установки параметра сокета.
protected abstract void setTimeToLive(int ttl)
Устанавливает параметр TTL (время жизни).
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и её сокетом (DatagramSocket или MulticastSocket).

Методы, объявленные в классе 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 или interrupt.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

Методы, объявленные в интерфейсе SocketOptions

getOption, setOption
Модификатор и тип Метод Описание
Object getOption(int optID)
Получает значение параметра.
void setOption(int optID, Object value)
Включает или отключает параметр, указанный в optID.

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

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()

getTimeToLive

protected abstract int getTimeToLive() throws IOException
Получает параметр TTL (время жизни).
Возвращает:
int, представляющий значение времени жизни
Выбрасывает:
IOException — если при получении параметра времени жизни произошла ошибка ввода-вывода
См. также:
  • setTimeToLive(int)

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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