DatagramChannel.Receive(ByteBuffer) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает диаграмму данных через этот канал.
[Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")]
public abstract Java.Net.SocketAddress? Receive (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("receive", "(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;", "GetReceive_Ljava_nio_ByteBuffer_Handler")>]
abstract member Receive : Java.Nio.ByteBuffer -> Java.Net.SocketAddress
Параметры
- dst
- ByteBuffer
Буфер, в который передается диаграмма данных
Возвращаемое значение
Исходный адрес диаграммы данных или null
если этот канал находится в режиме неблокировки, и не было немедленно доступной диаграммы данных.
- Атрибуты
Исключения
Значение , если канал уже закрыт.
Значение , если канал закрыт другим потоком во время работы этого метода.
Если другой поток прерывает вызывающий поток во время выполнения операции. Вызывающий поток будет иметь набор состояний прерывания, и канал будет закрыт.
возникает другая ошибка ввода-вывода.
Комментарии
Получает диаграмму данных через этот канал.
Если диаграмма данных немедленно доступна, или если этот канал находится в режиме блокировки, и один в конечном итоге становится доступным, то диаграмма данных копируется в заданный буфер байтов и возвращается его исходный адрес. Если этот канал находится в режиме без блокировки, а диаграмма данных недоступна немедленно, этот метод немедленно возвращается null
.
Диаграмма данных передается в заданный буфер байтов, начиная с текущей позиции, как будто обычной ReadableByteChannel#read(java.nio.ByteBuffer) read
операцией. Если в буфере осталось меньше байтов, чем требуется для хранения диаграммы данных, оставшаяся часть диаграммы данных автоматически удаляется.
Этот метод выполняет точно те же проверки безопасности, что java.net.DatagramSocket#receive receive
и метод java.net.DatagramSocket
класса. То есть, если сокет не подключен к определенному удаленному адресу и диспетчер безопасности был установлен, то для каждой полученной граммы данных проверяется, разрешен ли адрес источника и номер порта методом диспетчера java.lang.SecurityManager#checkAccept checkAccept
безопасности. Затраты на эту проверку безопасности можно избежать, сначала подключив сокет с помощью #connect connect
метода.
Этот метод может вызываться в любое время. Если другой поток уже инициировал операцию чтения по этому каналу, то вызов этого метода будет блокироваться до завершения первой операции. Если сокет этого канала не привязан, этот метод сначала приведет к автоматическому привязке сокета к адресу, назначенному автоматически, как при вызове #bind bind
метода с параметром null
.
Документация по Java для java.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer)
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.