Класс 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 Protocol поддерживает следующие параметры:
Также могут поддерживаться дополнительные (зависящие от реализации) параметры.
Имя параметра Описание SO_SNDBUFРазмер буфера отправки сокета SO_RCVBUFРазмер буфера приема сокета SO_REUSEADDRПовторное использование адреса SO_BROADCASTРазрешить передачу широковещательных дейтаграмм IP_TOSОктет типа обслуживания (ToS) в заголовке Internet Protocol (IP) IP_MULTICAST_IFСетевой интерфейс для многоадресных дейтаграмм Internet Protocol (IP) IP_MULTICAST_TTLВремя жизни многоадресных дейтаграмм Internet Protocol (IP) IP_MULTICAST_LOOPОбратная передача многоадресных дейтаграмм Internet Protocol (IP)
Каналы дейтаграмм безопасно использовать из нескольких параллельных потоков. Они поддерживают параллельное чтение и запись, однако в любой момент времени читать может не более одного потока, а записывать — не более одного потока.
- Начиная с:
- 1.4
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Инициализирует новый экземпляр этого класса. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract DatagramChannel |
bind |
Привязывает сокет канала к локальному адресу. |
abstract DatagramChannel |
connect |
Подключает сокет этого канала. |
abstract DatagramChannel |
disconnect() |
Отключает сокет этого канала. |
abstract SocketAddress |
getLocalAddress() |
Возвращает адрес сокета, к которому привязан этот канал. |
abstract SocketAddress |
getRemoteAddress() |
Возвращает удаленный адрес, к которому подключен сокет этого канала. |
abstract boolean |
isConnected() |
Определяет, подключен ли сокет этого канала. |
static DatagramChannel |
open() |
Открывает канал дейтаграмм. |
static DatagramChannel |
open |
Открывает канал дейтаграмм. |
abstract int |
read |
Читает дейтаграмму из этого канала. |
final long |
read |
Читает дейтаграмму из этого канала. |
abstract long |
read |
Читает дейтаграмму из этого канала. |
abstract SocketAddress |
receive |
Принимает дейтаграмму через этот канал. |
abstract int |
send |
Отправляет дейтаграмму через этот канал. |
abstract <T> DatagramChannel |
setOption |
Задает значение параметра сокета. |
abstract DatagramSocket |
socket() |
Получает сокет дейтаграмм, связанный с этим каналом. |
final int |
validOps() |
Возвращает набор операций, определяющий поддерживаемые этим каналом операции. |
abstract int |
write |
Записывает дейтаграмму в этот канал. |
final long |
write |
Записывает дейтаграмму в этот канал. |
abstract long |
write |
Записывает дейтаграмму в этот канал. |
Методы, объявленные в классе AbstractSelectableChannel
blockingLock, configureBlocking, implCloseChannel, implCloseSelectableChannel, implConfigureBlocking, isBlocking, isRegistered, keyFor, provider, register | Модификатор и тип | Метод | Описание |
|---|---|---|
final Object |
blockingLock() |
Получает объект, на котором синхронизируются методы configureBlocking и register. |
final SelectableChannel |
configureBlocking |
Изменяет режим блокировки этого канала. |
protected final void |
implCloseChannel() |
Закрывает этот канал. |
protected abstract void |
implCloseSelectableChannel() |
Закрывает этот выбираемый канал. |
protected abstract void |
implConfigureBlocking |
Изменяет режим блокировки этого канала. |
final boolean |
isBlocking() |
Определяет, будет ли каждая операция ввода-вывода в этом канале блокироваться до завершения. |
final boolean |
isRegistered() |
Определяет, зарегистрирован ли этот канал в данный момент в каких-либо селекторах. |
final SelectionKey |
keyFor |
Получает ключ, представляющий регистрацию канала в указанном селекторе. |
final SelectorProvider |
provider() |
Возвращает поставщика, создавшего этот канал. |
final SelectionKey |
register |
Регистрирует этот канал в указанном селекторе и возвращает ключ выбора. |
Методы, объявленные в классе SelectableChannel
register | Модификатор и тип | Метод | Описание |
|---|---|---|
final SelectionKey |
register |
Регистрирует этот канал в указанном селекторе и возвращает ключ выбора. |
Методы, объявленные в классе AbstractInterruptibleChannel
begin, close, end, isOpen | Модификатор и тип | Метод | Описание |
|---|---|---|
protected final void |
begin() |
Отмечает начало операции ввода-вывода, которая может блокироваться на неопределенное время. |
final void |
close() |
Закрывает этот канал. |
protected final void |
end |
Отмечает завершение операции ввода-вывода, которая может блокироваться на неопределенное время. |
final boolean |
isOpen() |
Определяет, открыт ли этот канал. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удален в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Методы, объявленные в интерфейсе MulticastChannel
close, join, join | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Закрывает этот канал. |
MembershipKey |
join |
Присоединяется к группе многоадресной рассылки, чтобы начать получать все дейтаграммы, отправленные этой группе, и возвращает ключ членства. |
MembershipKey |
join |
Присоединяется к группе многоадресной рассылки, чтобы начать получать дейтаграммы, отправленные этой группе с указанного адреса источника. |
Методы, объявленные в интерфейсе NetworkChannel
getOption, supportedOptions | Модификатор и тип | Метод | Описание |
|---|---|---|
<T> T |
getOption |
Возвращает значение параметра сокета. |
Set |
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. Канал не будет подключен.
- Примечание к API:
- Сокеты домена Unix не поддерживаются.
- Параметры:
-
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— если произошла другая ошибка ввода-вывода - Начиная с версии:
- 1.7
- См. также:
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
- См. также:
socket
public abstract DatagramSocket socket()
- Возвращает:
- Дейтаграммный сокет, связанный с этим каналом
isConnected
public abstract boolean isConnected()
- Возвращает:
-
true, если и только если сокет этого каналаopenи подключен
connect
public abstract DatagramChannel connect(SocketAddress remote) throws IOException
Сокет канала настраивается таким образом, чтобы принимать дейтаграммы только от указанного удаленного узла peer и отправлять дейтаграммы только ему. После подключения принимать дейтаграммы от других адресов или отправлять их на другие адреса нельзя. Дейтаграммы в буфере приема сокета канала, которые не были получены до вызова этого метода, могут быть отброшены. Сокет канала остается подключенным до явного отключения или закрытия.
Этот метод можно вызывать в любое время. Если другой поток уже начал операцию чтения или записи в этом канале, вызов этого метода будет заблокирован до завершения такой операции. Если сокет этого канала не привязан, этот метод сначала привяжет его к адресу, назначенному автоматически, как если бы был вызван метод bind с параметром null.
- Параметры:
-
remote— удаленный адрес, к которому подключается этот канал - Возвращает:
- Этот дейтаграммный канал
- Исключения:
-
AlreadyConnectedException— если этот канал уже подключен -
ClosedChannelException— если этот канал закрыт -
AsynchronousCloseException— если другой поток закрывает этот канал во время выполнения операции подключения -
ClosedByInterruptException— если другой поток прерывает текущий поток во время выполнения операции подключения, тем самым закрывая канал и устанавливая флаг прерывания текущего потока -
UnresolvedAddressException— если указанный удаленный адрес разрешен не полностью -
UnsupportedAddressTypeException— если тип указанного удаленного адреса не поддерживается -
IOException— если произошла другая ошибка ввода-вывода
disconnect
public abstract DatagramChannel disconnect() throws IOException
Сокет канала настраивается таким образом, чтобы принимать дейтаграммы от любого удаленного адреса и отправлять дейтаграммы на любой удаленный адрес.
Этот метод можно вызывать в любое время. Если другой поток уже начал операцию чтения или записи в этом канале, вызов этого метода будет заблокирован до завершения такой операции.
Если сокет этого канала не подключен или канал закрыт, вызов этого метода не оказывает никакого эффекта.
- Примечание к API:
- Если этот метод выбрасывает 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. Если в буфере осталось меньше байтов, чем требуется для хранения дейтаграммы, остаток дейтаграммы отбрасывается без уведомления.
Этот метод можно вызывать в любое время. Однако если другой поток уже начал операцию чтения в этом канале, вызов этого метода будет заблокирован до завершения первой операции. Если сокет этого канала не привязан, этот метод сначала привяжет его к адресу, назначенному автоматически, как если бы был вызван метод bind с параметром null.
- Параметры:
-
dst— буфер, в который переносится дейтаграмма - Возвращает:
- Адрес источника дейтаграммы или
null, если этот канал работает в неблокирующем режиме и дейтаграмма не была доступна немедленно - Исключения:
-
IllegalArgumentException— если буфер доступен только для чтения -
ClosedChannelException— если этот канал закрыт -
AsynchronousCloseException— если другой поток закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException— если другой поток прерывает текущий поток во время выполнения операции чтения, тем самым закрывая канал и устанавливая флаг прерывания текущего потока -
IOException— если произошла другая ошибка ввода-вывода
send
public abstract int send(ByteBuffer src, SocketAddress target) throws IOException
Если этот канал работает в неблокирующем режиме и в базовом буфере вывода достаточно места либо если канал работает в блокирующем режиме и место становится доступным, оставшиеся байты указанного буфера передаются как одна дейтаграмма по указанному адресу назначения.
Дейтаграмма переносится из байтового буфера, как при обычной операции write.
Этот метод можно вызывать в любое время. Однако если другой поток уже начал операцию записи в этом канале, вызов этого метода будет заблокирован до завершения первой операции. Если сокет этого канала не привязан, этот метод сначала привяжет его к адресу, назначенному автоматически, как если бы был вызван метод bind с параметром null.
- Параметры:
-
src— буфер, содержащий отправляемую дейтаграмму -
target— адрес, на который отправляется дейтаграмма - Возвращает:
- Количество отправленных байтов: либо количество байтов, оставшихся в исходном буфере на момент вызова этого метода, либо ноль, если канал работает в неблокирующем режиме и в базовом буфере вывода недостаточно места для дейтаграммы
- Исключения:
-
AlreadyConnectedException— если этот канал подключен к адресу, отличному от указанного вtarget -
ClosedChannelException— если этот канал закрыт -
AsynchronousCloseException— если другой поток закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException— если другой поток прерывает текущий поток во время выполнения операции чтения, тем самым закрывая канал и устанавливая флаг прерывания текущего потока -
UnresolvedAddressException— если указанный удаленный адрес разрешен не полностью -
UnsupportedAddressTypeException— если тип указанного удаленного адреса не поддерживается -
IOException— если произошла другая ошибка ввода-вывода
read
public abstract int read(ByteBuffer dst) throws IOException
Этот метод можно вызывать только в том случае, если сокет этого канала подключен; он принимает дейтаграммы только от узла-партнера сокета. Если в дейтаграмме больше байтов, чем осталось в указанном буфере, остаток дейтаграммы отбрасывается без уведомления. В противном случае этот метод работает точно так, как указано в интерфейсе ReadableByteChannel.
- Определено в:
-
readв интерфейсеReadableByteChannel - Параметры:
-
dst— буфер, в который переносятся байты - Возвращает:
- Количество прочитанных байтов, возможно ноль, или
-1, если канал достиг конца потока - Исключения:
-
NotYetConnectedException— если сокет этого канала не подключен -
ClosedChannelException— если этот канал закрыт -
AsynchronousCloseException— если другой поток закрывает этот канал во время выполнения операции чтения -
ClosedByInterruptException— если другой поток прерывает текущий поток во время выполнения операции чтения, тем самым закрывая канал и устанавливая флаг прерывания текущего потока -
IOException— если произошла другая ошибка ввода-вывода
read
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— если произошла другая ошибка ввода-вывода
read
public final long read(ByteBuffer[] dsts) throws IOException
Этот метод можно вызывать только в том случае, если сокет этого канала подключен; он принимает дейтаграммы только от узла-партнера сокета. Если в дейтаграмме больше байтов, чем осталось в указанных буферах, остаток дейтаграммы отбрасывается без уведомления. В противном случае этот метод работает точно так, как указано в интерфейсе ScatteringByteChannel.
- Определено в:
-
readв интерфейсеScatteringByteChannel - Параметры:
-
dsts— буферы, в которые переносятся байты - Возвращает:
- Количество прочитанных байтов, возможно ноль, или
-1, если канал достиг конца потока - Исключения:
-
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.
Если сокет канала изначально был привязан к адресу-шаблону и теперь connected, возвращенный адрес может быть локальным адресом, выбранным в качестве адреса источника для дейтаграмм, отправляемых через этот канал, а не адресом-шаблоном. При вызове disconnect() привязанный адрес возвращается к адресу-шаблону.
- Определено в:
-
getLocalAddressв интерфейсеNetworkChannel - Возвращает:
SocketAddress, к которому привязан сокет;null, если сокет канала не привязан- Исключения:
-
ClosedChannelException— если канал закрыт -
IOException— если произошла ошибка ввода-вывода
© 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.