Compartilhar via


DatagramChannel.Receive(ByteBuffer) Método

Definição

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á nullimediatamente.

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 receivejava.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.

Aplica-se a