DatagramChannel.Receive(ByteBuffer) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 null
immé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.