DatagramChannel.Receive(ByteBuffer) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Recebe um datagrama através deste canal.
[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
Parâmetros
- dst
- ByteBuffer
O buffer para o qual o datagrama deve ser transferido
Retornos
O endereço de origem do datagrama ou null
se esse canal estiver no modo sem bloqueio e nenhum datagrama estiver imediatamente disponível
- Atributos
Exceções
se o canal já estiver fechado.
se o canal for fechado por outro thread enquanto esse método estiver em operação.
se outro thread interromper o thread de chamada enquanto a operação estiver em andamento. O thread de chamada terá o estado de interrupção definido e o canal será fechado.
ocorre algum outro erro de E/S.
Comentários
Recebe um datagrama através deste canal.
Se um datagrama estiver imediatamente disponível, ou se esse canal estiver no modo de bloqueio e um eventualmente se tornar disponível, o datagrama será copiado para o buffer de bytes fornecido e seu endereço de origem será retornado. Se esse canal estiver no modo sem bloqueio e um datagrama não estiver disponível imediatamente, esse método retornará null
imediatamente.
O datagrama é transferido para o buffer de bytes fornecido a partir de sua posição atual, como se fosse uma operação regular ReadableByteChannel#read(java.nio.ByteBuffer) read
. Se houver menos bytes restantes no buffer do que o necessário para manter o datagrama, o restante do datagrama será descartado silenciosamente.
Esse método executa exatamente as mesmas verificações de segurança que o java.net.DatagramSocket#receive receive
java.net.DatagramSocket
método da classe. Ou seja, se o soquete não estiver conectado a um endereço remoto específico e um gerenciador de segurança tiver sido instalado, para cada datagrama recebido, esse método verificará se o endereço da origem e o número da porta são permitidos java.lang.SecurityManager#checkAccept checkAccept
pelo método do gerenciador de segurança. A sobrecarga dessa verificação de segurança pode ser evitada conectando primeiro o soquete por meio do #connect connect
método.
Esse método pode ser invocado a qualquer momento. No entanto, se outro thread já tiver iniciado uma operação de leitura nesse canal, uma invocação desse método será bloqueada até que a primeira operação seja concluída. Se o soquete desse canal não estiver vinculado, esse método primeiro fará com que o soquete seja vinculado a um endereço atribuído automaticamente, como se invocasse o #bind bind
método com um parâmetro de null
.
Documentação Java para java.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer)
.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.