Langue

DatagramChannel.Send(ByteBuffer, SocketAddress) Méthode

Définition

Envoie un datagramme via ce canal.

[Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")]
public abstract int Send(Java.Nio.ByteBuffer? src, Java.Net.SocketAddress? target);
[<Android.Runtime.Register("send", "(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I", "GetSend_Ljava_nio_ByteBuffer_Ljava_net_SocketAddress_Handler")>]
abstract member Send : Java.Nio.ByteBuffer * Java.Net.SocketAddress -> int

Paramètres

src
ByteBuffer

Mémoire tampon contenant le datagramme à envoyer

target
SocketAddress

Adresse à laquelle le datagramme doit être envoyé

Retours

Le nombre d’octets envoyés, soit le nombre d’octets restants dans la mémoire tampon source lorsque cette méthode a été appelée ou, si ce canal n’est pas bloquant, peut être égal à zéro s’il n’y avait pas suffisamment de place pour le datagramme dans la mémoire tampon de sortie sous-jacente.

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

Envoie un datagramme via ce canal.

Si ce canal est en mode non bloquant et qu’il y a suffisamment de place dans la mémoire tampon de sortie sous-jacente, ou si ce canal est en mode bloquant et qu’une salle suffisante est disponible, les octets restants dans la mémoire tampon donnée sont transmis sous forme de datagramme unique à l’adresse cible donnée.

Le datagramme est transféré à partir de la mémoire tampon d’octets comme s’il s’agit d’une opération normale WritableByteChannel#write(java.nio.ByteBuffer) write .

Cette méthode effectue exactement les mêmes vérifications de sécurité que la java.net.DatagramSocket#send send 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 envoyé cette méthode vérifie que l’adresse cible et le numéro de port sont autorisés par la méthode du gestionnaire de java.lang.SecurityManager#checkConnect checkConnect 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 d’écriture 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 elle appelait la #bind bind méthode avec un paramètre de null.

Documentation Java pour java.nio.channels.DatagramChannel.send(java.nio.ByteBuffer, java.net.SocketAddress).

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 à