AsynchronousSocketChannel.Write 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.
Surcharges
| Nom | Description |
|---|---|
| Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Écrit une séquence d’octets dans ce canal à partir de la mémoire tampon donnée. |
| Write(ByteBuffer) | |
| Write(ByteBuffer, Object, ICompletionHandler) | |
| Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données. |
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)
Écrit une séquence d’octets dans ce canal à partir de la mémoire tampon donnée.
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Write(Java.Nio.ByteBuffer? src, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_Ljava_nio_ByteBuffer_JLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Paramètres
- src
- ByteBuffer
Mémoire tampon à partir de laquelle les octets doivent être récupérés
- timeout
- Int64
Durée maximale pour l’exécution de l’opération d’E/S
- unit
- TimeUnit
Unité de temps de l’argument timeout
- attachment
- Object
Objet à attacher à l’opération d’E/S ; peut être null
- handler
- ICompletionHandler
Gestionnaire de consommation du résultat
- Attributs
Remarques
Écrit une séquence d’octets dans ce canal à partir de la mémoire tampon donnée.
Cette méthode lance une opération d’écriture asynchrone pour écrire une séquence d’octets dans ce canal à partir de la mémoire tampon donnée. Le handler paramètre est un gestionnaire d’achèvement appelé lorsque l’opération d’écriture se termine (ou échoue). Le résultat passé au gestionnaire d’achèvement est le nombre d’octets écrits.
Si un délai d’expiration est spécifié et que le délai d’expiration s’écoule avant la fin de l’opération, il se termine avec l’exception InterruptedByTimeoutException. Lorsqu’un délai d’expiration se produit et que l’implémentation ne peut pas garantir que les octets n’ont pas été écrits ou ne seront pas écrits dans le canal à partir de la mémoire tampon donnée, les tentatives supplémentaires d’écriture dans le canal entraînent la levée d’une exception d’exécution non spécifiée.
Sinon, cette méthode fonctionne de la même manière que la AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler) méthode.
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 à
Write(ByteBuffer)
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Write(Java.Nio.ByteBuffer? src);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetWrite_Ljava_nio_ByteBuffer_Handler", ApiSince=26)>]
abstract member Write : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture
Paramètres
- src
- ByteBuffer
Retours
Implémente
- Attributs
Remarques
Documentation Java pour java.nio.channels.AsynchronousSocketChannel.write(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 à
Write(ByteBuffer, Object, ICompletionHandler)
[Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Write(Java.Nio.ByteBuffer? src, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
override this.Write : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Paramètres
- src
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
Implémente
- Attributs
Remarques
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 à
Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données.
[Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Write(Java.Nio.ByteBuffer[]? srcs, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("write", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetWrite_arrayLjava_nio_ByteBuffer_IIJLjava_util_concurrent_TimeUnit_Ljava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Write : Java.Nio.ByteBuffer[] * int * int * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Paramètres
- srcs
- ByteBuffer[]
Mémoires tampons à partir desquelles les octets doivent être récupérés
- offset
- Int32
Décalage dans le tableau de mémoires tampons du premier tampon à partir duquel les octets doivent être récupérés ; doit être non négatif et pas plus grand que srcs.length
- length
- Int32
Nombre maximal de mémoires tampons à accéder ; doit être non négatif et pas plus grand que srcs.length - offset
- timeout
- Int64
Durée maximale pour l’exécution de l’opération d’E/S
- unit
- TimeUnit
Unité de temps de l’argument timeout
- attachment
- Object
Objet à attacher à l’opération d’E/S ; peut être null
- handler
- ICompletionHandler
Gestionnaire de consommation du résultat
- Attributs
Remarques
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données. Cette opération, parfois appelée <>em gathering write</em>, est souvent utile lors de l’implémentation de protocoles réseau qui regroupent les données en segments constitués d’un ou plusieurs en-têtes de longueur fixe suivis d’un corps de longueur variable. Le handler paramètre est un gestionnaire d’achèvement appelé lorsque l’opération d’écriture se termine (ou échoue). Le résultat passé au gestionnaire d’achèvement est le nombre d’octets écrits.
Cette méthode initie une écriture de jusqu’à r octets dans ce canal, où r correspond au nombre total d’octets restants dans la sous-séquence spécifiée du tableau de mémoires tampons donné, autrement dit,
<blockquote>
srcs[offset].remaining()
+ srcs[offset+1].remaining()
+ ... + srcs[offset+length-1].remaining()
</blockquote>
au moment où l’écriture est tentée.
Supposons qu’une séquence d’octets de longueur n soit écrite, où 0 ;< ; n ;<= ; r. Jusqu’aux premiers srcs[offset].remaining() octets de cette séquence sont écrits à partir de la mémoire tampon srcs[offset], jusqu’aux octets suivants srcs[offset+1].remaining() sont écrits à partir de la mémoire tampon srcs[offset+1], et ainsi de suite, jusqu’à ce que la séquence d’octets entière soit écrite. Autant d’octets que possible sont écrits à partir de chaque mémoire tampon, donc la position finale de chaque mémoire tampon mise à jour, sauf la dernière mémoire tampon mise à jour, est garantie d’être égale à la limite de cette mémoire tampon. Le système d’exploitation sous-jacent peut imposer une limite au nombre de mémoires tampons qui peuvent être utilisées dans une opération d’E/S. Lorsque le nombre de mémoires tampons (avec octets restants) dépasse cette limite, l’opération d’E/S est effectuée avec le nombre maximal de mémoires tampons autorisées par le système d’exploitation.
Si un délai d’expiration est spécifié et que le délai d’expiration s’écoule avant la fin de l’opération, il se termine avec l’exception InterruptedByTimeoutException. Lorsqu’un délai d’expiration se produit et que l’implémentation ne peut pas garantir que les octets n’ont pas été écrits ou qu’ils ne seront pas écrits dans le canal à partir des mémoires tampons données, d’autres tentatives d’écriture dans le canal entraînent la levée d’une exception d’exécution non spécifiée.
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.