Spec-Zone.ru › OpenJDK 21

Класс DatagramChannel

java.lang.Object
java.nio.channels.spi.AbstractInterruptibleChannel
java.nio.channels.SelectableChannel
java.nio.channels.spi.AbstractSelectableChannel
java.nio.channels.DatagramChannel
Все реализуемые интерфейсы:
Closeable, AutoCloseable, ByteChannel, Channel, GatheringByteChannel, InterruptibleChannel, MulticastChannel, NetworkChannel, ReadableByteChannel, ScatteringByteChannel, WritableByteChannel
public abstract class DatagramChannel extends AbstractSelectableChannel implements ByteChannel, ScatteringByteChannel, GatheringByteChannel, MulticastChannel
Выбираемый канал для сокетов с ориентированным на дейтаграммы способом обмена данными.

Канал дейтаграмм создается путем вызова одного из методов open этого класса. Невозможно создать канал для произвольного, предварительно существующего сокета дейтаграмм. Недавно созданный канал дейтаграмм открыт, но не подключен. Канал дейтаграмм не обязательно должен быть подключен для использования методов send и receive. Канал дейтаграмм может быть подключен, вызвав его метод connect, чтобы избежать накладных расходов на проверки безопасности, которые в противном случае выполняются как часть каждой операции отправки и приема. Для использования методов read и write канал дейтаграмм должен быть подключен, так как эти методы не принимают и не возвращают адреса сокетов.

После подключения канал дейтаграмм остается подключенным до тех пор, пока он не будет отключен или закрыт. Подключен ли канал дейтаграмм, можно определить, вызвав его метод isConnected.

Параметры сокета настраиваются с помощью метода setOption. Канал дейтаграмм для сокета протокола Internet поддерживает следующие параметры:

Параметры сокета
Имя параметра Описание
SO_SNDBUF Размер буфера отправки сокета
SO_RCVBUF Размер буфера приема сокета
SO_REUSEADDR Повторное использование адреса
SO_BROADCAST Разрешить передачу дейтаграмм широковещательной рассылки
IP_TOS Октет типа службы (ToS) в заголовке протокола Internet (IP)
IP_MULTICAST_IF Сетевой интерфейс для дейтаграмм групповой рассылки протокола Internet (IP)
IP_MULTICAST_TTL Время жизни для дейтаграмм групповой рассылки протокола Internet (IP)
IP_MULTICAST_LOOP Обратная связь для дейтаграмм групповой рассылки протокола Internet (IP)
Дополнительные (специфичные для реализации) параметры также могут поддерживаться.

Каналы дейтаграмм безопасны для использования несколькими одновременно работающими потоками. Они поддерживают одновременный чтение и запись, хотя в любой момент времени может читать только один поток и только один поток может записывать.

С момента:
1.4

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

DatagramChannel(SelectorProvider provider)
Модификатор Конструктор Описание
protected
Инициализирует новый экземпляр этого класса.

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

Модификатор и тип Метод Описание
abstract DatagramChannel bind(SocketAddress local)
Связывает сокет канала с локальным адресом.
abstract DatagramChannel connect(SocketAddress remote)
Подключает сокет этого канала.
abstract DatagramChannel disconnect()
Отключает сокет этого канала.
abstract SocketAddress getLocalAddress()
Возвращает адрес сокета, к которому привязан сокет этого канала.
abstract SocketAddress getRemoteAddress()
Возвращает удалённый адрес, к которому подключен сокет этого канала.
abstract boolean isConnected()
Указывает, подключен ли сокет этого канала.
static DatagramChannel open()
Открывает канал дейтаграмм.
static DatagramChannel open(ProtocolFamily family)
Открывает канал дейтаграмм.
abstract int read(ByteBuffer dst)
Считывает дейтаграмму из этого канала.
final long read(ByteBuffer[] dsts)
Считывает дейтаграмму из этого канала.
abstract long read(ByteBuffer[] dsts, int offset, int length)
Считывает дейтаграмму из этого канала.
abstract SocketAddress receive(ByteBuffer dst)
Принимает дейтаграмму через этот канал.
abstract int send(ByteBuffer src, SocketAddress target)
Отправляет дейтаграмму через этот канал.
abstract <T> DatagramChannel setOption(SocketOption<T> name, T value)
Устанавливает значение параметра сокета.
abstract DatagramSocket socket()
Возвращает сокет дейтаграмм, связанный с этим каналом.
final int validOps()
Возвращает набор операций, определяющий поддерживаемые операции канала.
abstract int write(ByteBuffer src)
Записывает дейтаграмму в этот канал.
final long write(ByteBuffer[] srcs)
Записывает дейтаграмму в этот канал.
abstract long write(ByteBuffer[] srcs, int offset, int length)
Записывает дейтаграмму в этот канал.

Методы, объявленные в классе java.nio.channels.spi.AbstractSelectableChannel

blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register

Методы, объявленные в классе java.nio.channels.SelectableChannel

register

Методы, объявленные в классе java.nio.channels.spi.AbstractInterruptibleChannel

begin, close, end, isOpen

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

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

Методы, объявленные в интерфейсе java.nio.channels.Channel

isOpen

Методы, объявленные в интерфейсе java.nio.channels.MulticastChannel

close, join, join

Методы, объявленные в интерфейсе java.nio.channels.NetworkChannel

getOption, supportedOptions

Подробное описание конструкторов

DatagramChannel

protected DatagramChannel(SelectorProvider provider)
Инициализирует новый экземпляр этого класса.
Параметры:
provider - Провайдер, создавший этот канал

Подробное описание методов

open

public static DatagramChannel open() throws IOException
Открывает канал дейтаграмм.

Новый канал создаётся путём вызова метода openDatagramChannel системного глобального объекта SelectorProvider. Канал не будет подключён.

ProtocolFamily сокета канала зависит от платформы (и, возможно, конфигурации), поэтому не определён. open позволяет выбрать семейство протоколов при открытии канала дейтаграмм и должен использоваться для открытия каналов дейтаграмм, предназначенных для многоадресной рассылки по протоколу Интернета.

Возвращает:
Новый канал дейтаграмм
Исключение:
IOException - Если произошла ошибка ввода-вывода
См. также:
  • java.net.preferIPv4Stack системная переменная

open

public static DatagramChannel open(ProtocolFamily family) throws IOException
Открывает канал дейтаграмм.

Параметр family используется для указания ProtocolFamily. Если канал дейтаграмм предназначен для многоадресной рассылки по протоколу IP, то он должен соответствовать типу адреса многоадресных групп, к которым будет подключаться этот канал.

Новый канал создаётся путём вызова метода openDatagramChannel системного глобального объекта SelectorProvider. Канал не будет подключён.

Примечание API:
Сокеты доменной области Unix не поддерживаются.
Параметры:
family - Семейство протоколов
Возвращает:
Новый канал дейтаграмм
Исключение:
UnsupportedOperationException - Если указанное семейство протоколов не поддерживается. Например, предположим, что параметр указан как StandardProtocolFamily.INET6, но IPv6 не включён на платформе.
IOException - Если произошла ошибка ввода-вывода
С:
1.7
См. также:
  • java.net.preferIPv4Stack системная переменная

validOps

public final int validOps()
Возвращает набор операций, поддерживаемых этим каналом.

Каналы дейтаграмм поддерживают чтение и запись, поэтому этот метод возвращает (SelectionKey.OP_READ | SelectionKey.OP_WRITE).

Указано:
validOps в классе SelectableChannel
Возвращает:
Набор допустимых операций

bind

public abstract DatagramChannel bind(SocketAddress local) throws IOException
Описание скопировано из интерфейса: NetworkChannel
Привязывает сокет канала к локальному адресу.

Этот метод используется для установления связи между сокетом и локальным адресом. После установления связи сокет остаётся привязанным до закрытия канала. Если параметр local имеет значение null , то сокет будет привязан к автоматически назначенному адресу.

Указано:
bind в интерфейсе NetworkChannel
Параметры:
local - Адрес для привязки сокета или null для привязки сокета к автоматически назначенному адресу сокета
Возвращает:
Этот канал
Исключение:
AlreadyBoundException - Если сокет уже привязан
UnsupportedAddressTypeException - Если тип заданного адреса не поддерживается
ClosedChannelException - Если канал закрыт
IOException - Если произошла ошибка ввода-вывода
SecurityException - Если установлен менеджер безопасности и его метод checkListen запрещает операцию
С:
1.7
См. также:
  • NetworkChannel.getLocalAddress()

setOption

public abstract <T> DatagramChannel setOption(SocketOption<T> name, T value) throws IOException
Описание скопировано из интерфейса: NetworkChannel
Устанавливает значение параметра сокета.
Указано:
setOption в интерфейсе NetworkChannel
Параметры типа:
T - Тип значения параметра сокета
Параметры:
name - Параметр сокета
value - Значение параметра сокета. Значение null может быть допустимым значением для некоторых параметров сокета.
Возвращает:
Этот канал
Исключение:
UnsupportedOperationException - Если параметр сокета не поддерживается этим каналом
IllegalArgumentException - Если значение не является допустимым значением для этого параметра сокета
ClosedChannelException - Если этот канал закрыт
IOException - Если произошла ошибка ввода-вывода
С:
1.7
См. также:
  • StandardSocketOptions

socket

public abstract DatagramSocket socket()
Возвращает сокет дейтаграмм, связанный с этим каналом.
Возвращает:
Сокет дейтаграмм, связанный с этим каналом

isConnected

public abstract boolean isConnected()
Указывает, подключён ли сокет этого канала.
Возвращает:
true если, и только если, сокет этого канала open и подключён

connect

public abstract DatagramChannel connect(SocketAddress remote) throws IOException
Подключает сокет этого канала.

Сокет канала настроен таким образом, что он принимает дейтаграммы только от и отправляет дейтаграммы только к заданному удалённому адресу узла. После подключения дейтаграммы не могут быть приняты или отправлены ни с какого другого адреса. Дейтаграммы в буфере приёма сокета канала, которые не были приняты до вызова этого метода, могут быть отброшены. Сокет канала остаётся подключённым до явного отключения или закрытия.

Этот метод выполняет точно такие же проверки безопасности, что и метод connect класса DatagramSocket. То есть, если установлен менеджер безопасности, то этот метод проверяет, разрешает ли его метод checkAccept и checkConnect соответственно, приём дейтаграмм от и отправку дейтаграмм на указанный удалённый адрес. После подключения дальнейшие проверки безопасности для дейтаграмм, принятых от или отправленных на указанный удалённый адрес, не выполняются. Необходимо позаботиться о том, чтобы подключённый канал дейтаграмм не использовался совместно с недоверенным кодом.

Этот метод может быть вызван в любое время. Если другой поток уже инициировал операцию чтения или записи на этом канале, вызов этого метода будет блокировать выполнение, пока любая такая операция не завершится. Если сокет этого канала не привязан, то этот метод сначала заставит сокет быть привязанным к адресу, который назначается автоматически, как если бы был вызван метод bind с параметром null.

Параметры:
remote - Удалённый адрес, к которому должен быть подключён этот канал
Возвращает:
Этот канал дейтаграмм
Исключение:
AlreadyConnectedException - Если этот канал уже подключён
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал, пока операция подключения находится в процессе
ClosedByInterruptException - Если другой поток прерывает текущий поток, пока операция подключения находится в процессе, тем самым закрывая канал и устанавливая статус прерывания текущего потока
UnresolvedAddressException - Если заданный удалённый адрес не полностью разрешён
UnsupportedAddressTypeException - Если тип заданного удалённого адреса не поддерживается
SecurityException - Если установлен менеджер безопасности и он не разрешает доступ к заданному удалённому адресу или, если не привязан, метод менеджера безопасности checkListen запрещает операцию
IOException - Если произошла другая ошибка ввода-вывода

disconnect

public abstract DatagramChannel disconnect() throws IOException
Отключает сокет данного канала.

Сокет канала настроен таким образом, что он может получать датаграммы от любого удалённого адреса и отправлять датаграммы любому удалённому адресу, при условии, что менеджер безопасности, если он установлен, разрешает это.

Этот метод может быть вызван в любое время. Если другой поток уже инициировал операцию чтения или записи в данном канале, то вызов этого метода будет блокироваться до завершения любой такой операции.

Если сокет данного канала не подключён или канал закрыт, то вызов этого метода не имеет эффекта.

API Note:
Если этот метод вызывает исключение IOException, сокет канала может остаться в неопределённом состоянии. Сильно рекомендуется закрыть канал, когда disconnect завершается с ошибкой.
Возвращает:
Данный канал датаграмм
Исключения:
IOException - Если произошла другая ошибка ввода-вывода

getRemoteAddress

public abstract SocketAddress getRemoteAddress() throws IOException
Возвращает удалённый адрес, к которому подключён сокет данного канала.
Возвращает:
Удалённый адрес; null если сокет канала не подключён
Исключения:
ClosedChannelException - Если канал закрыт
IOException - Если произошла ошибка ввода-вывода
С:
1.7

receive

public abstract SocketAddress receive(ByteBuffer dst) throws IOException
Принимает датаграмму через этот канал.

Если датаграмма доступна немедленно или если этот канал находится в режиме блокировки, и она в конечном итоге становится доступной, то датаграмма копируется в заданный буфер байтов, и возвращается адрес её источника. Если этот канал находится в режиме без блокировки и датаграмма немедленно недоступна, то этот метод немедленно возвращает null.

Датаграмма передаётся в заданный буфер байтов, начиная с его текущей позиции, как при обычной операции read. Если оставшихся байтов в буфере меньше, чем требуется для хранения датаграммы, то оставшаяся часть датаграммы отбрасывается.

Этот метод выполняет точно такие же проверки безопасности, как метод receive класса DatagramSocket. То есть, если сокет не подключён к определённому удалённому адресу и установлен менеджер безопасности, то для каждой принятой датаграммы этот метод проверяет, разрешены ли адрес и номер порта источника менеджером безопасности с помощью метода checkAccept. Датаграммы, которые не разрешены менеджером безопасности, отбрасываются. Надстройка этой проверки безопасности может быть избежана путём предварительного подключения сокета с помощью метода connect.

Этот метод может быть вызван в любое время. Однако, если другой поток уже инициировал операцию чтения в данном канале, то вызов этого метода будет блокироваться до завершения первой операции. Если сокет данного канала не привязан, то этот метод сначала привяжет сокет к адресу, который назначается автоматически, как если бы был вызван метод bind с параметром null.

Параметры:
dst - Буфер, в который должна быть передана датаграмма
Возвращает:
Адрес источника датаграммы или null если этот канал находится в режиме без блокировки и датаграмма немедленно недоступна
Исключения:
IllegalArgumentException - Если буфер только для чтения
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, закрывая канал и устанавливая статус прерывания текущего потока
SecurityException - Если не привязан, и установлен менеджер безопасности, и его метод checkListen отклоняет операцию
IOException - Если произошла другая ошибка ввода-вывода

send

public abstract int send(ByteBuffer src, SocketAddress target) throws IOException
Отправляет датаграмму через этот канал.

Если этот канал находится в режиме без блокировки и в базовом выходном буфере достаточно места, или если этот канал находится в режиме блокировки и достаточно места становится доступным, то оставшиеся байты в заданном буфере передаются как единственная датаграмма по заданному целевому адресу.

Датаграмма передаётся из буфера байтов, как при обычной операции write.

Этот метод выполняет точно такие же проверки безопасности, как метод send класса DatagramSocket. То есть, если сокет не подключён к определённому удалённому адресу и установлен менеджер безопасности, то для каждой отправленной датаграммы этот метод проверяет, разрешены ли целевой адрес и номер порта менеджером безопасности с помощью метода checkConnect. Надстройка этой проверки безопасности может быть избежана путём предварительного подключения сокета с помощью метода connect.

Этот метод может быть вызван в любое время. Однако, если другой поток уже инициировал операцию записи в данном канале, то вызов этого метода будет блокироваться до завершения первой операции. Если сокет данного канала не привязан, то этот метод сначала привяжет сокет к адресу, который назначается автоматически, как если бы был вызван метод bind с параметром null.

Параметры:
src - Буфер, содержащий отправляемую датаграмму
target - Адрес, по которому должна быть отправлена датаграмма
Возвращает:
Количество отправленных байтов, которое будет либо количеством оставшихся байтов в исходном буфере при вызове этого метода, либо, если этот канал неблокирующий, может быть нулём, если для датаграммы не было достаточно места в базовом выходном буфере
Исключения:
AlreadyConnectedException - Если этот канал подключён к другому адресу, чем тот, что указан в target
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, закрывая канал и устанавливая статус прерывания текущего потока
UnresolvedAddressException - Если указанный удалённый адрес не полностью разрешен
UnsupportedAddressTypeException - Если тип указанного удалённого адреса не поддерживается
SecurityException - Если установлен менеджер безопасности и он не разрешает отправлять датаграммы по указанному адресу, или если не привязан, и метод менеджера безопасности checkListen отклоняет операцию
IOException - Если произошла другая ошибка ввода-вывода

read

public abstract int read(ByteBuffer dst) throws IOException
Читает датаграмму из этого канала.

Этот метод может быть вызван только в том случае, если сокет данного канала подключён, и он принимает только датаграммы от сокета-партнёра. Если в датаграмме больше байтов, чем осталось в заданном буфере, то оставшаяся часть датаграммы отбрасывается. В противном случае этот метод ведёт себя точно так же, как указано в интерфейсе ReadableByteChannel.

Определено в:
read в интерфейсе ReadableByteChannel
Параметры:
dst - Буфер, в который должны быть переданы байты
Возвращает:
Количество прочитанных байтов, возможно ноль, или -1 если канал достиг конца потока
Исключения:
NotYetConnectedException - Если сокет данного канала не подключён
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

чтение

public abstract long read(ByteBuffer[] dsts, int offset, int length) throws IOException
Считывает дейтаграмму из этого канала.

Этот метод можно вызывать только если сокет этого канала подключен, и он принимает дейтаграммы только от удалённого сокета. Если в дейтаграмме больше байтов, чем осталось в предоставленных буферах, то оставшаяся часть дейтаграммы игнорируется. В противном случае этот метод ведет себя точно так же, как и указано в интерфейсе ScatteringByteChannel.

Определено в:
read в интерфейсе ScatteringByteChannel
Параметры:
dsts - Буферы, в которые будут переданы байты
offset - Смещение в массиве буферов первого буфера, в который будут переданы байты; должно быть неотрицательным и не больше dsts.length
length - Максимальное количество буферов для доступа; должно быть неотрицательным и не больше dsts.length - offset
Возвращает:
Количество считанных байтов, возможно ноль, или -1 если канал достиг конца потока
Исключения:
NotYetConnectedException - Если сокет этого канала не подключен
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

чтение

public final long read(ByteBuffer[] dsts) throws IOException
Считывает дейтаграмму из этого канала.

Этот метод можно вызывать только если сокет этого канала подключен, и он принимает дейтаграммы только от удалённого сокета. Если в дейтаграмме больше байтов, чем осталось в предоставленных буферах, то оставшаяся часть дейтаграммы игнорируется. В противном случае этот метод ведет себя точно так же, как и указано в интерфейсе ScatteringByteChannel.

Определено в:
read в интерфейсе ScatteringByteChannel
Параметры:
dsts - Буферы, в которые будут переданы байты
Возвращает:
Количество считанных байтов, возможно ноль, или -1 если канал достиг конца потока
Исключения:
NotYetConnectedException - Если сокет этого канала не подключен
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции чтения
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

запись

public abstract int write(ByteBuffer src) throws IOException
Записывает дейтаграмму в этот канал.

Этот метод можно вызывать только если сокет этого канала подключен, в этом случае он отправляет дейтаграммы непосредственно удалённому сокету. В противном случае он ведет себя точно так же, как и указано в интерфейсе WritableByteChannel.

Определено в:
write в интерфейсе WritableByteChannel
Параметры:
src - Буфер, из которого необходимо извлечь байты
Возвращает:
Количество записанных байтов, возможно ноль
Исключения:
NotYetConnectedException - Если сокет этого канала не подключен
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции записи
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции записи, тем самым закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

запись

public abstract long write(ByteBuffer[] srcs, int offset, int length) throws IOException
Записывает дейтаграмму в этот канал.

Этот метод можно вызывать только если сокет этого канала подключен, в этом случае он отправляет дейтаграммы непосредственно удалённому сокету. В противном случае он ведет себя точно так же, как и указано в интерфейсе GatheringByteChannel.

Определено в:
write в интерфейсе GatheringByteChannel
Параметры:
srcs - Буферы, из которых необходимо извлечь байты
offset - Смещение в массиве буферов первого буфера, из которого необходимо извлечь байты; должно быть неотрицательным и не больше srcs.length
length - Максимальное количество буферов для доступа; должно быть неотрицательным и не больше srcs.length - offset
Возвращает:
Количество отправленных байтов, которое будет либо количеством оставшихся байтов в исходном буфере при вызове этого метода, либо, если этот канал неблокирующий, может быть нулевым, если в базовом буфере вывода недостаточно места для дейтаграммы
Исключения:
NotYetConnectedException - Если сокет этого канала не подключен
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции записи
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции записи, тем самым закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

запись

public final long write(ByteBuffer[] srcs) throws IOException
Записывает дейтаграмму в этот канал.

Этот метод можно вызывать только если сокет этого канала подключен, в этом случае он отправляет дейтаграммы непосредственно удалённому сокету. В противном случае он ведет себя точно так же, как и указано в интерфейсе GatheringByteChannel.

Определено в:
write в интерфейсе GatheringByteChannel
Параметры:
srcs - Буферы, из которых необходимо извлечь байты
Возвращает:
Количество отправленных байтов, которое будет либо количеством оставшихся байтов в исходном буфере при вызове этого метода, либо, если этот канал неблокирующий, может быть нулевым, если в базовом буфере вывода недостаточно места для дейтаграммы
Исключения:
NotYetConnectedException - Если сокет этого канала не подключен
ClosedChannelException - Если этот канал закрыт
AsynchronousCloseException - Если другой поток закрывает этот канал во время операции записи
ClosedByInterruptException - Если другой поток прерывает текущий поток во время операции записи, тем самым закрывая канал и устанавливая статус прерывания текущего потока
IOException - Если произошла другая ошибка ввода-вывода

getLocalAddress

public abstract SocketAddress getLocalAddress() throws IOException
Возвращает адрес сокета, к которому привязан сокет этого канала.

Если канал bound к адресу сокета интернет-протокола, то возвращаемое значение этого метода имеет тип InetSocketAddress.

Если установлен менеджер безопасности, его метод checkConnect вызывается с локальным адресом и -1 в качестве аргументов, чтобы проверить, разрешена ли операция. Если операция не разрешена, возвращается SocketAddress представляющий адрес loopback и локальный порт сокета канала.

Определено в:
getLocalAddress в интерфейсе NetworkChannel
Возвращает:
Адрес, к которому привязан сокет, или SocketAddress представляющий адрес обратной связи, если это запрещено менеджером безопасности, или null если сокет канала не привязан
Исключения:
ClosedChannelException - Если канал закрыт
IOException - Если произошла ошибка ввода-вывода

© 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/nio/channels/DatagramChannel.html

Spec-Zone.ru

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