AsynchronousSocketChannel.Read Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Legge una sequenza di byte da questo canale nel buffer specificato. |
Read(ByteBuffer) | |
Read(ByteBuffer, Object, ICompletionHandler) |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)
Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati.
[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
Parametri
- dsts
- ByteBuffer[]
Buffer in cui devono essere trasferiti i byte
- offset
- Int32
Offset all'interno della matrice di buffer del primo buffer in cui devono essere trasferiti i byte; deve essere non negativo e non maggiore di dsts.length
- length
- Int32
Numero massimo di buffer a cui accedere; deve essere non negativo e non maggiore di dsts.length - offset
- timeout
- Int64
Tempo massimo per il completamento dell'operazione di I/O
- unit
- TimeUnit
Unità temporale dell'argomento timeout
- attachment
- Object
Oggetto da associare all'operazione di I/O; può essere null
- handler
- ICompletionHandler
Gestore per l'utilizzo del risultato
- Attributi
Commenti
Legge una sequenza di byte da questo canale in una sottosequenza dei buffer specificati. Questa operazione, talvolta detta <lettura></em> a dispersione em, è spesso utile quando si implementano protocolli di rete che raggruppano i dati in segmenti costituiti da una o più intestazioni a lunghezza fissa seguite da un corpo a lunghezza variabile. Il handler
parametro è un gestore di completamento che viene richiamato quando l'operazione di lettura viene completata (o ha esito negativo). Il risultato passato al gestore di completamento è il numero di byte letti o -1
se non è possibile leggere byte perché il canale ha raggiunto la fine del flusso.
Questo metodo avvia una lettura di fino a r byte da questo canale, dove r è il numero totale di byte rimanenti nella sottosequenza specificata della matrice di buffer specificata, ovvero
<blockquote>
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
</blockquote>
al momento del tentativo di lettura.
Si supponga che venga letta una sequenza di byte di lunghezza n , dove 0
<
n <=
r. Fino ai primi dsts[offset].remaining()
byte di questa sequenza vengono trasferiti nel buffer dsts[offset]
, fino ai byte successivi dsts[offset+1].remaining()
vengono trasferiti nel buffer dsts[offset+1]
e così via, fino a quando l'intera sequenza di byte non viene trasferita nei buffer specificati. Il maggior numero possibile di byte vengono trasferiti in ogni buffer, quindi la posizione finale di ogni buffer aggiornato, ad eccezione dell'ultimo buffer aggiornato, è garantito che sia uguale al limite del buffer. Il sistema operativo sottostante può imporre un limite al numero di buffer che possono essere usati in un'operazione di I/O. Se il numero di buffer (con byte rimanenti), supera questo limite, l'operazione di I/O viene eseguita con il numero massimo di buffer consentiti dal sistema operativo.
Se viene specificato un timeout e il timeout viene trascorso prima del completamento dell'operazione, viene completato con l'eccezione InterruptedByTimeoutException
. Quando si verifica un timeout e l'implementazione non garantisce che i byte non siano stati letti o non vengano letti dal canale nei buffer specificati, altri tentativi di lettura dal canale causeranno la generazione di un'eccezione di runtime non specifica.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)
Legge una sequenza di byte da questo canale nel buffer specificato.
[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
Parametri
- dst
- ByteBuffer
Buffer in cui devono essere trasferiti i byte
- timeout
- Int64
Tempo massimo per il completamento dell'operazione di I/O
- unit
- TimeUnit
Unità temporale dell'argomento timeout
- attachment
- Object
Oggetto da associare all'operazione di I/O; può essere null
- handler
- ICompletionHandler
Gestore per l'utilizzo del risultato
- Attributi
Commenti
Legge una sequenza di byte da questo canale nel buffer specificato.
Questo metodo avvia un'operazione di lettura asincrona per leggere una sequenza di byte da questo canale nel buffer specificato. Il handler
parametro è un gestore di completamento che viene richiamato quando l'operazione di lettura viene completata (o ha esito negativo). Il risultato passato al gestore di completamento è il numero di byte letti o -1
se non è possibile leggere byte perché il canale ha raggiunto la fine del flusso.
Se viene specificato un timeout e il timeout è trascorso prima del completamento dell'operazione, l'operazione viene completata con l'eccezione InterruptedByTimeoutException
. Quando si verifica un timeout e l'implementazione non può garantire che i byte non siano stati letti o non vengano letti dal canale nel buffer specificato, altri tentativi di lettura dal canale causeranno la generazione di un'eccezione di runtime non specifica.
In caso contrario, questo metodo funziona allo stesso modo del AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler)
metodo .
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
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
Parametri
- dst
- ByteBuffer
Restituisce
Implementazioni
- Attributi
Commenti
Documentazione java per java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer)
.
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.
Si applica a
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
Parametri
- dst
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
Implementazioni
- Attributi
Commenti
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.