Idioma

DatagramChannel.Receive(ByteBuffer) Método

Definição

Recebe um datagram por meio 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 datagram deve ser transferido

Retornos

O endereço de origem do datagram ou null se esse canal estiver no modo sem bloqueio e nenhum datagrama estiver disponível imediatamente

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 datagram por meio deste canal.

Se um datagram estiver disponível imediatamente ou se esse canal estiver no modo de bloqueio e um eventualmente ficar 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 de não bloqueio e um datagram não estiver disponível imediatamente, esse método retornará nullimediatamente.

O datagram é transferido para o buffer de bytes fornecido começando em sua posição atual, como se fosse por uma operação regular ReadableByteChannel#read(java.nio.ByteBuffer) read . Se houver menos bytes restantes no buffer do que os necessários para manter o datagram, o restante do datagram será descartado silenciosamente.

Esse método executa exatamente as mesmas verificações de segurança que o java.net.DatagramSocket#receive receive método da java.net.DatagramSocket 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 pelo método do gerenciador de java.lang.SecurityManager#checkAccept checkAccept segurança. A sobrecarga dessa verificação de segurança pode ser evitada primeiro conectando 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 associado, esse método primeiro fará com que o soquete seja associado a um endereço atribuído automaticamente, como se invocasse o #bind bind método com um parâmetro de null.

Java documentação 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 usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Aplica-se a