DatagramChannel.Receive(ByteBuffer) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 null
inmediatamente .
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.