Spec-Zone.ru › OpenJDK 25

Класс 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

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

Конструктор Описание
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 byte getTTL()
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
используйте вместо него getTimeToLive.
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 abstract void setTTL(byte ttl)
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
используйте вместо него setTimeToLive.
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и её сокетом (DatagramSocket или MulticastSocket).

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

getOption, setOption

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

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 — может быть выброшено, если сокет подключён к узлу назначения, который в данный момент недоступен. Обратите внимание: нет гарантии, что исключение будет выброшено.

setTTL

@Deprecated(forRemoval=true, since="1.2") protected abstract void setTTL(byte ttl) throws IOException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
используйте вместо него setTimeToLive.
Устанавливает параметр TTL (время жизни).
Параметры:
ttl — значение TTL в виде байта
Выбрасывает:
IOException — если при установке параметра времени жизни произошла ошибка ввода-вывода.
См. также:
  • getTTL()

getTTL

@Deprecated(forRemoval=true, since="1.2") protected abstract byte getTTL() throws IOException
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии.
используйте вместо него getTimeToLive.
Получает параметр TTL (время жизни).
Возвращает:
байт, представляющий значение TTL
Выбрасывает:
IOException — если при получении параметра времени жизни произошла ошибка ввода-вывода
См. также:
  • setTTL(byte)

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 — если name равен null
Начиная с:
9

getOption

protected <T> T getOption(SocketOption<T> name) throws IOException
Вызывается для получения параметра сокета.
Требования к реализации:
Реализация этого метода по умолчанию сначала проверяет, что заданный параметр сокета name не равен null, а затем выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод и предоставить соответствующую реализацию.
Параметры типа:
T — тип значения параметра сокета
Параметры:
name — параметр сокета
Возвращает:
параметр сокета
Выбрасывает:
UnsupportedOperationException — если DatagramSocketImpl не поддерживает этот параметр
IOException — если произошла ошибка ввода-вывода или сокет закрыт
NullPointerException — если name равен null
Начиная с:
9

supportedOptions

protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этой реализацией и её сокетом (DatagramSocket или MulticastSocket).
Требования к реализации:
Реализация этого метода по умолчанию возвращает пустой набор. Подклассам следует переопределить этот метод и предоставить соответствующую реализацию.
Возвращает:
набор SocketOptions
Начиная с:
9

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

Spec-Zone.ru

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