Compartir a través de


DatagramChannel.Receive(ByteBuffer) Método

Definición

Recibe un datagrama a través de este 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

Búfer en el que se va a transferir el datagrama.

Devoluciones

La dirección de origen del datagrama, o null si este canal está en modo de no bloqueo y ningún datagrama estaba disponible inmediatamente.

Atributos

Excepciones

si el canal ya está cerrado.

si otro subproceso cierra el canal mientras este método está en funcionamiento.

si otro subproceso interrumpe el subproceso que realiza la llamada mientras la operación está en curso. El subproceso de llamada tendrá el estado de interrupción establecido y se cerrará el canal.

se produce algún otro error de E/S.

Comentarios

Recibe un datagrama a través de este canal.

Si un datagrama está disponible inmediatamente, o si este canal está en modo de bloqueo y uno finalmente está disponible, el datagrama se copia en el búfer de bytes especificado y se devuelve su dirección de origen. Si este canal está en modo de no bloqueo y un datagrama no está disponible inmediatamente, este método devuelve nullinmediatamente .

El datagrama se transfiere al búfer de bytes especificado a partir de su posición actual, como si fuera una operación normal ReadableByteChannel#read(java.nio.ByteBuffer) read . Si quedan menos bytes en el búfer de los necesarios para contener el datagrama, el resto del datagrama se descarta silenciosamente.

Este método realiza exactamente las mismas comprobaciones de seguridad que el java.net.DatagramSocket#receive receive método de la java.net.DatagramSocket clase . Es decir, si el socket no está conectado a una dirección remota específica y se ha instalado un administrador de seguridad, para cada datagrama recibido este método comprueba que el método del administrador de seguridad permite la dirección y el número de puerto del java.lang.SecurityManager#checkAccept checkAccept origen. La sobrecarga de esta comprobación de seguridad se puede evitar conectando primero el socket a través del #connect connect método .

Este método se puede invocar en cualquier momento. Sin embargo, si otro subproceso ya ha iniciado una operación de lectura en este canal, se bloqueará una invocación de este método hasta que se complete la primera operación. Si el socket de este canal no está enlazado, este método hará que el socket se enlace primero a una dirección que se asigna automáticamente, como si invocara el #bind bind método con un parámetro de null.

Documentación de Java para java.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a