Spec-Zone.ru › OpenJDK 17

Класс DatagramSocketImpl

java.lang.Object
java.net.DatagramSocketImpl
Все реализованные интерфейсы:
SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
Базовый класс реализации абстрактных сокетов для датаграмм и мультипоточных сообщений.
Замечание по реализации:
Сокеты, созданные с помощью DatagramSocket и MulticastSocket общедоступных конструкторов, исторически делегировали все операции с сокетами реализации DatagramSocketImpl с именем "PlainDatagramSocketImpl". DatagramSocket и MulticastSocket с тех пор были изменены на новую реализацию, основанную на DatagramChannel. JDK по-прежнему поставляется со старой реализацией, чтобы позволить работе кода, зависящего от неопределенного поведения, которое отличается между старой и новой реализациями. Старая реализация будет использоваться, если виртуальная машина Java запускается с системной переменной jdk.net.usePlainDatagramSocketImpl установленной для использования старой реализации. Она также может быть установлена в файле конфигурации сети JDK, расположенном в ${java.home}/conf/net.properties. Значение свойства представляет собой строковое представление булева значения. Если оно установлено без значения, то по умолчанию используется true, следовательно, запуск с -Djdk.net.usePlainDatagramSocketImpl или -Djdk.net.usePlainDatagramSocketImpl=true настроит виртуальную машину Java на использование старой реализации. Свойство и старая реализация будут удалены в будущей версии.
С:
1.1

Краткое описание полей

Модификатор и тип Поле Описание
protected FileDescriptor fd
Объект дескриптора файла.
protected int localPort
Номер локального порта.

Поля, объявленные в интерфейсе java.net.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()
Устарело.
используйте 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)
Устарело.
используйте setTimeToLive вместо этого.
protected Set<SocketOption<?>> supportedOptions()
Возвращает набор SocketOptions, поддерживаемых этим impl и сокетом этого impl (DatagramSocket или MulticastSocket)

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

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

Методы, объявленные в интерфейсе java.net.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
Подключает сокет для работы с датаграммами к удалённому месту назначения. Это связывает удалённый адрес с локальным сокетом, так что датаграммы могут быть отправлены только на это место назначения и получены только от этого места назначения. Это можно переопределить, чтобы вызвать подключение к системному ядру.

Если удалённое место назначения, к которому подключён сокет, не существует или по другим причинам недоступно, и если для этого адреса получен пакет ICMP destination unreachable, то последующий вызов send или receive может выбросить исключение PortUnreachableException. Нет гарантии, что исключение будет выброшено.

Параметры:
address - удалённый InetAddress для подключения
port - номер удалённого порта
Возбуждает:
SocketException - может быть выброшено, если сокет не может быть подключен к удалённому месту назначения
С момента:
1.4

disconnect

protected void disconnect()
Отключает сокет для работы с датаграммами от удалённого места назначения.
С момента:
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 protected abstract void setTTL(byte ttl) throws IOException
Устарело.
используйте setTimeToLive вместо этого.
Устанавливает значение TTL (time-to-live).
Параметры:
ttl - байт, определяющий значение TTL
Возбуждает:
IOException - если при установке значения time-to-live произошла ошибка ввода-вывода.
См. также:
  • getTTL()

getTTL

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

setTimeToLive

protected abstract void setTimeToLive(int ttl) throws IOException
Устанавливает значение TTL (time-to-live).
Параметры:
ttl - int значение time-to-live
Возбуждает:
IOException - если при установке значения time-to-live произошла ошибка ввода-вывода.
См. также:
  • getTimeToLive()

getTimeToLive

protected abstract int getTimeToLive() throws IOException
Получение значения TTL (time-to-live).
Возвращает:
int значение time-to-live
Возбуждает:
IOException - если при получении значения time-to-live произошла ошибка ввода-вывода
См. также:
  • 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

© 1993, 2021, 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/17/docs/api/java.base/java/net/DatagramSocketImpl.html

Spec-Zone.ru

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