Spec-Zone.ru › OpenJDK 21

Класс DatagramSocketImpl

java.lang.Object
java.net.DatagramSocketImpl
Все реализованные интерфейсы:
SocketOptions
public abstract class DatagramSocketImpl extends Object implements SocketOptions
Базовый абстрактный класс реализации сокета для датаграмм и мультикаста.
С тех пор:
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 - если при отправке пакета датаграмм возникает исключение I/O.
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 - если возникает исключение I/O
PortUnreachableException - может быть возбуждено, если сокет подключен к в настоящее время недоступному пункту назначения. Заметим, нет гарантии, что исключение будет возбуждено.

peekData

protected abstract int peekData(DatagramPacket p) throws IOException
Просмотр пакета, чтобы узнать, от кого он. Данные копируются в указанный DatagramPacket. Данные возвращаются, но не потребляются, поэтому последующая операция peekData/receive увидит те же данные.
Параметры:
p - полученный пакет.
Возвращает:
номер порта, с которого пришёл пакет.
Возбуждает:
IOException - если возникает исключение I/O
PortUnreachableException - может быть возбуждено, если сокет подключен к в настоящее время недоступному пункту назначения. Заметим, нет гарантии, что исключение будет возбуждено.
С:
1.4

receive

protected abstract void receive(DatagramPacket p) throws IOException
Принимает пакет датаграмм.
Параметры:
p - полученный пакет.
Возбуждает:
IOException - если при получении пакета датаграмм возникает исключение I/O.
PortUnreachableException - может быть возбуждено, если сокет подключен к в настоящее время недоступному пункту назначения. Заметим, нет гарантии, что исключение будет возбуждено.

setTTL

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

getTTL

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

setTimeToLive

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

getTimeToLive

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

join

protected abstract void join(InetAddress inetaddr) throws IOException
Присоединиться к мультикаст-группе.
Параметры:
inetaddr - мультикаст-адрес для присоединения.
Возбуждает:
IOException - если при присоединении к мультикаст-группе возникает исключение I/O.

leave

protected abstract void leave(InetAddress inetaddr) throws IOException
Покинуть мультикаст-группу.
Параметры:
inetaddr - мультикаст-адрес для выхода.
Возбуждает:
IOException - если при выходе из мультикаст-группы возникает исключение I/O.

joinGroup

protected abstract void joinGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
Присоединиться к мультикаст-группе.
Параметры:
mcastaddr - адрес для присоединения.
netIf - указывает локальный интерфейс для получения мультикаст-пакетов датаграмм
Возбуждает:
IOException - если при присоединении к мультикаст-группе возникает исключение I/O
С:
1.4

leaveGroup

protected abstract void leaveGroup(SocketAddress mcastaddr, NetworkInterface netIf) throws IOException
Покинуть мультикаст-группу.
Параметры:
mcastaddr - адрес для выхода.
netIf - указывает локальный интерфейс для выхода из группы
Возбуждает:
IOException - если при выходе из мультикаст-группы возникает исключение I/O
С:
1.4

close

protected abstract void close()
Закрывает сокет.

getLocalPort

protected int getLocalPort()
Получает локальный порт.
Возвращает:
целое число, представляющее значение локального порта

getFileDescriptor

protected FileDescriptor getFileDescriptor()
Получает дескриптор файла сокета для работы с датаграммами.
Возвращает:
объект, представляющий дескриптор файла сокета для работы с датаграммами

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, поддерживаемых этим impl и сокетом этого impl (DatagramSocket или MulticastSocket)
Требования к реализации:
Стандартная реализация этого метода возвращает пустой набор. Подклассы должны переопределить этот метод соответствующей реализацией.
Возвращает:
набор SocketOptions
С:
9

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

Spec-Zone.ru

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