Partager via


AsynchronousSocketChannel.Read Méthode

Définition

Surcharges

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données.

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

Read(ByteBuffer)
Read(ByteBuffer, Object, ICompletionHandler)

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données.

[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer[] * int * int * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Paramètres

dsts
ByteBuffer[]

Mémoires tampons dans lesquelles les octets doivent être transférés

offset
Int32

Décalage dans le tableau de mémoires tampons du premier tampon dans lequel les octets doivent être transférés ; doit être non négatif et pas plus grand que dsts.length

length
Int32

Nombre maximal de mémoires tampons à accéder ; doit être non négatif et pas plus grand que dsts.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

Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données. Cette opération, parfois appelée <>éparpillement< 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 de lecture se termine (ou échoue). Le résultat passé au gestionnaire d’achèvement est le nombre d’octets lus ou -1 si aucun octet n’a pu être lu, car le canal a atteint la fin du flux.

Cette méthode initie une lecture de jusqu’à r octets à partir de 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>

dsts[offset].remaining()
                + dsts[offset+1].remaining()
                + ... + dsts[offset+length-1].remaining()

</blockquote>

au moment où la lecture est tentée.

Supposons qu’une séquence d’octets de longueur n soit lue, où 0  ;<  ;n  ;<=  ;r. Jusqu’aux premiers dsts[offset].remaining() octets de cette séquence sont transférés dans la mémoire tampon dsts[offset], jusqu’aux octets suivants dsts[offset+1].remaining() sont transférés dans la mémoire tampon dsts[offset+1], et ainsi de suite, jusqu’à ce que la séquence d’octets entière soit transférée dans les mémoires tampons données. Autant d’octets que possible sont transférés dans chaque mémoire tampon, donc la position finale de chaque mémoire tampon mise à jour, à l’exception de 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é lus ou ne seront pas lus à partir du canal dans les mémoires tampons données, d’autres tentatives de lecture à partir du canal entraînent la levée d’une exception d’exécution non spécifiée.

Documentation Java pour java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>).

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 à

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read (Java.Nio.ByteBuffer? dst, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Paramètres

dst
ByteBuffer

Mémoire tampon dans laquelle les octets doivent être transfé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

Lit une séquence d’octets de ce canal dans la mémoire tampon donnée.

Cette méthode lance une opération de lecture asynchrone pour lire une séquence d’octets de ce canal dans la mémoire tampon donnée. Le handler paramètre est un gestionnaire d’achèvement appelé lorsque l’opération de lecture se termine (ou échoue). Le résultat passé au gestionnaire d’achèvement est le nombre d’octets lus ou -1 si aucun octet n’a pu être lu, car le canal a atteint la fin du flux.

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, l’opération 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é lus ou ne seront pas lus à partir du canal dans la mémoire tampon donnée, d’autres tentatives de lecture à partir du 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#read(ByteBuffer,Object,CompletionHandler) méthode.

Documentation Java pour java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

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 à

Read(ByteBuffer)

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture

Paramètres

Retours

Implémente

Attributs

Remarques

Documentation Java pour java.nio.channels.AsynchronousSocketChannel.read(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 à

Read(ByteBuffer, Object, ICompletionHandler)

[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Read (Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
override this.Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

Paramètres

attachment
Object

Implémente

Attributs

Remarques

Documentation Java pour java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

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 à