Класс 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. Канал датаграмм для сокета Интернет-протокола поддерживает следующие параметры:
| Имя параметра | Описание |
|---|---|
SO_SNDBUF | Размер буфера отправки сокета |
SO_RCVBUF | Размер буфера приёма сокета |
SO_REUSEADDR | Повторное использование адреса |
SO_BROADCAST | Разрешить передачу широковещательных датаграмм |
IP_TOS | Байты типа обслуживания (ToS) в заголовке Интернет-протокола (IP) |
IP_MULTICAST_IF | Сетевой интерфейс для датаграмм многоадресной рассылки Интернет-протокола (IP) |
IP_MULTICAST_TTL | Время жизни для датаграмм многоадресной рассылки Интернет-протокола (IP) |
IP_MULTICAST_LOOP | Обратная связь для датаграмм многоадресной рассылки Интернет-протокола (IP) |
Каналы датаграмм безопасны для использования несколькими одновременными потоками. Они поддерживают одновременный чтение и запись, хотя в любой момент времени может осуществлять чтение только один поток, а запись только один поток.
- С:
- 1.4
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | DatagramChannel(SelectorProvider provider) | Инициализирует новый экземпляр этого класса. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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) | Считывает датаграмму из этого канала. |
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() | Возвращает сокет датаграмм, связанный с этим каналом. |
int | validOps() | Возвращает набор операций, определяющий поддерживаемые операции этого канала. |
abstract int | write(ByteBuffer src) | Записывает датаграмму в этот канал. |
long | write(ByteBuffer[] srcs) | Записывает датаграмму в этот канал. |
abstract long | write(ByteBuffer[] srcs,
int offset,
int length) | Записывает датаграмму в этот канал. |
Методы, объявленные в классе java.nio.channels.spi.AbstractSelectableChannel
configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, provider, register Методы, объявленные в классе java.nio.channels.SelectableChannel
blockingLock, isBlocking, isRegistered, keyFor, register Методы, объявленные в классе java.nio.channels.spi.AbstractInterruptibleChannel
begin, close, end Методы, объявленные в классе 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- если произошла ошибка ввода-вывода
open
public static DatagramChannel open(ProtocolFamily family)
throws IOException Открывает канал дейтаграмм.
Параметр family используется для указания семейства протоколов ProtocolFamily. Если канал дейтаграмм будет использоваться для IP-многоадресного вещания, то он должен соответствовать типу адреса многоадресных групп, к которым этот канал будет присоединяться.
Новый канал создаётся путём вызова метода openDatagramChannel системного по умолчанию SelectorProvider объекта. Канал не будет подключен.
- Параметры:
-
family- семейство протоколов - Возвращает:
- Новый канал дейтаграмм
- Исключения:
-
UnsupportedOperationException- если указанное семейство протоколов не поддерживается. Например, предположим, что параметр указан какStandardProtocolFamily.INET6, но IPv6 не включён на платформе. -
IOException- если произошла ошибка ввода-вывода - С:
- 1.7
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()
Возвращает сокет дейтаграмм, связанный с этим каналом.
Возвращаемый объект не будет объявлять никаких публичных методов, которые не объявлены в классе DatagramSocket.
- Возвращает:
- Сокет дейтаграмм, связанный с этим каналом
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- если установлен менеджер безопасности, и он не разрешает доступ к указанному удалённому адресу -
IOException- если произошла другая ошибка ввода-вывода
disconnect
public abstract DatagramChannel disconnect()
throws IOException Отключает сокет этого канала.
Сокет канала настроен таким образом, что он может получать дейтаграммы с любого удалённого адреса, при условии, что менеджер безопасности, если он установлен, позволяет это.
Этот метод может быть вызван в любое время. Он не повлияет на операции чтения или записи, которые уже находятся в процессе выполнения в момент его вызова.
Если сокет этого канала не подключён или канал закрыт, вызов этого метода не оказывает никакого влияния.
- Возвращает:
- Этот канал дейтаграмм
- Исключения:
-
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.
- Parameters:
-
dst- Буфер, в который должна быть передана датаграмма - Returns:
- Исходный адрес датаграммы или
null, если этот канал находится в режиме без блокировки и датаграмма немедленно не была доступна - Throws:
-
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другая нить закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException- Если другая нить прерывает текущую нить во время выполнения операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущей нити -
SecurityException- Если установлен менеджер безопасности, и он не разрешает получение датаграмм от отправителя датаграммы -
IOException- Если произошла какая-либо другая ошибка ввода-вывода
send
public abstract int send(ByteBuffer src,
SocketAddress target)
throws IOException Отправляет датаграмму через этот канал.
Если этот канал находится в режиме без блокировки и в базовом буфере вывода достаточно места, или если этот канал находится в режиме блокировки и становится доступным достаточное количество места, то оставшиеся байты в заданном буфере передаются как одна датаграмма по указанному целевому адресу.
Датаграмма передаётся из буфера байтов как при обычной операции write.
Этот метод выполняет ровно те же проверки безопасности, что и метод send класса DatagramSocket. То есть, если сокет не подключён к конкретному удалённому адресу и установлен менеджер безопасности, то для каждой отправляемой датаграммы этот метод проверяет, разрешает ли менеджер безопасности целевой адрес и номер порта с помощью метода checkConnect. Накладные расходы на эту проверку безопасности можно избежать, предварительно подключив сокет с помощью метода connect.
Этот метод можно вызывать в любое время. Однако, если другая нить уже инициировала операцию записи в этом канале, то вызов этого метода заблокирует выполнение, пока первая операция не завершится. Если сокет этого канала не привязан, то этот метод сначала приведет к привязке сокета к автоматически назначенному адресу, как если бы был вызван метод bind с параметром null.
- Parameters:
-
src- Буфер, содержащий датаграмму, которая должна быть отправлена -
target- Адрес, по которому должна быть отправлена датаграмма - Returns:
- Количество отправленных байтов, которое будет либо количеством байтов, оставшихся в исходном буфере при вызове этого метода, или, если этот канал неблокирующий, может быть равно нулю, если в базовом буфере вывода не было достаточно места для датаграммы
- Throws:
-
AlreadyConnectedException- Если этот канал подключён к другому адресу, чем тот, который указан вtarget -
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другая нить закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException- Если другая нить прерывает текущую нить во время выполнения операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущей нити -
UnresolvedAddressException- Если заданный удалённый адрес не полностью разрешён -
UnsupportedAddressTypeException- Если тип заданного удалённого адреса не поддерживается -
SecurityException- Если установлен менеджер безопасности, и он не разрешает отправку датаграмм по данному адресу -
IOException- Если произошла какая-либо другая ошибка ввода-вывода
read
public abstract int read(ByteBuffer dst)
throws IOException Читает датаграмму из этого канала.
Этот метод может быть вызван только если сокет этого канала подключен, и он принимает датаграммы только от сокета-партнёра. Если в датаграмме больше байтов, чем осталось в заданном буфере, то остальная часть датаграммы отбрасывается молча. В противном случае этот метод ведёт себя точно так же, как указано в интерфейсе ReadableByteChannel.
- Specified by:
-
readв интерфейсеReadableByteChannel - Parameters:
-
dst- Буфер, в который должны быть переданы байты - Returns:
- Количество прочитанных байтов, возможно ноль, или
-1, если канал достиг конца потока - Throws:
-
NotYetConnectedException- Если сокет этого канала не подключён -
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другая нить закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException- Если другая нить прерывает текущую нить во время выполнения операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущей нити -
IOException- Если произошла какая-либо другая ошибка ввода-вывода
read
public abstract long read(ByteBuffer[] dsts,
int offset,
int length)
throws IOException Читает датаграмму из этого канала.
Этот метод может быть вызван только если сокет этого канала подключен, и он принимает датаграммы только от сокета-партнёра. Если в датаграмме больше байтов, чем осталось во всех заданных буферах, то остальная часть датаграммы отбрасывается молча. В противном случае этот метод ведет себя точно так же, как указано в интерфейсе ScatteringByteChannel.
- Specified by:
-
readв интерфейсеScatteringByteChannel - Parameters:
-
dsts- Буферы, в которые должны быть переданы байты -
offset- Смещение в массиве буферов первого буфера, в который должны быть переданы байты; должно быть неотрицательным и не большеdsts.length -
length- Максимальное количество буферов для доступа; должно быть неотрицательным и не большеdsts.length-offset - Returns:
- Количество прочитанных байтов, возможно ноль, или
-1, если канал достиг конца потока - Throws:
-
NotYetConnectedException- Если сокет этого канала не подключён -
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другая нить закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException- Если другая нить прерывает текущую нить во время выполнения операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущей нити -
IOException- Если произошла какая-либо другая ошибка ввода-вывода
read
public final long read(ByteBuffer[] dsts)
throws IOException Читает датаграмму из этого канала.
Этот метод может быть вызван только если сокет этого канала подключён, и он принимает датаграммы только от сокета-партнёра. Если в датаграмме больше байтов, чем осталось во всех заданных буферах, то остальная часть датаграммы отбрасывается молча. В противном случае этот метод ведет себя точно так же, как указано в интерфейсе ScatteringByteChannel.
- Specified by:
-
readв интерфейсеScatteringByteChannel - Parameters:
-
dsts- Буферы, в которые должны быть переданы байты - Returns:
- Количество прочитанных байтов, возможно ноль, или
-1, если канал достиг конца потока - Throws:
-
NotYetConnectedException- Если сокет этого канала не подключён -
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другая нить закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException- Если другая нить прерывает текущую нить во время выполнения операции чтения, тем самым закрывая канал и устанавливая статус прерывания текущей нити -
IOException- Если произошла какая-либо другая ошибка ввода-вывода
write
public abstract int write(ByteBuffer src)
throws IOException Записывает датаграмму в этот канал.
Этот метод может быть вызван только если сокет этого канала подключен, в этом случае он отправляет датаграммы напрямую партнёру сокета. В противном случае он ведет себя точно так же, как указано в интерфейсе WritableByteChannel.
- Указано в:
-
writeв интерфейсеWritableByteChannel - Параметры:
-
src- Буфер, из которого будут извлекаться байты - Возвращает:
- Количество записанных байтов, возможно ноль
- Исключения:
-
NotYetConnectedException- Если сокет этого канала не подключен -
ClosedChannelException- Если этот канал закрыт -
AsynchronousCloseException- Если другой поток закрывает этот канал во время операции записи -
ClosedByInterruptException- Если другой поток прерывает текущий поток во время операции записи, тем самым закрывая канал и устанавливая статус прерывания текущего потока -
IOException- Если произошла другая ошибка ввода-вывода
write
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- Если произошла другая ошибка ввода-вывода
write
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, 2020, 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/11/docs/api/java.base/java/nio/channels/DatagramChannel.html