Partager via


DatagramChannel.Receive(ByteBuffer) Méthode

Définition

Reçoit un datagramme via ce 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

Paramètres

dst
ByteBuffer

Mémoire tampon dans laquelle le datagramme doit être transféré

Retours

Adresse source du datagramme, ou null si ce canal est en mode non bloquant et qu’aucun datagramme n’a été immédiatement disponible

Attributs

Exceptions

si le canal est déjà fermé.

si le canal est fermé par un autre thread pendant que cette méthode est en cours d’opération.

si un autre thread interrompt le thread appelant pendant que l’opération est en cours. Le thread appelant aura l’état d’interruption défini et le canal sera fermé.

une autre erreur d’E/S se produit.

Remarques

Reçoit un datagramme via ce canal.

Si un datagramme est immédiatement disponible ou si ce canal est en mode bloquant et qu’un autre devient disponible, le datagramme est copié dans la mémoire tampon d’octets donnée et son adresse source est retournée. Si ce canal est en mode non bloquant et qu’un datagramme n’est pas immédiatement disponible, cette méthode retourne nullimmédiatement .

Le datagramme est transféré dans la mémoire tampon d’octet donnée en commençant à sa position actuelle, comme par une opération régulière ReadableByteChannel#read(java.nio.ByteBuffer) read . S’il y a moins d’octets dans la mémoire tampon que nécessaire pour contenir le datagramme, le reste du datagramme est ignoré en mode silencieux.

Cette méthode effectue exactement les mêmes vérifications de sécurité que la java.net.DatagramSocket#receive receive méthode de la java.net.DatagramSocket classe. Autrement dit, si le socket n’est pas connecté à une adresse distante spécifique et qu’un gestionnaire de sécurité a été installé, pour chaque datagramme reçu, cette méthode vérifie que l’adresse et le numéro de port de la source sont autorisés par la méthode du gestionnaire de java.lang.SecurityManager#checkAccept checkAccept sécurité. La surcharge de cette vérification de sécurité peut être évitée en connectant d’abord le socket via la #connect connect méthode.

Cette méthode peut être appelée à tout moment. Si un autre thread a déjà lancé une opération de lecture sur ce canal, toutefois, un appel de cette méthode se bloque jusqu’à ce que la première opération soit terminée. Si le socket de ce canal n’est pas lié, cette méthode entraîne d’abord la liaison du socket à une adresse affectée automatiquement, comme si l’appel de la #bind bind méthode avec un paramètre de null.

Documentation Java pour java.nio.channels.DatagramChannel.receive(java.nio.ByteBuffer).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à