Linguaggio

AsynchronousSocketChannel.Write Metodo

Definizione

Overload

Nome Descrizione
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Scrive una sequenza di byte in questo canale dal buffer specificato.

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

Scrive una sequenza di byte in questo canale da una sottosequenza dei buffer specificati.

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

Scrive una sequenza di byte in questo canale dal buffer specificato.

[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

Parametri

src
ByteBuffer

Buffer da cui recuperare 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

Scrive una sequenza di byte in questo canale dal buffer specificato.

Questo metodo avvia un'operazione di scrittura asincrona per scrivere una sequenza di byte in questo canale dal buffer specificato. Il handler parametro è un gestore di completamento che viene richiamato quando l'operazione di scrittura viene completata (o ha esito negativo). Il risultato passato al gestore di completamento è il numero di byte scritti.

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 può garantire che i byte non siano stati scritti o non vengano scritti nel canale dal buffer specificato, altri tentativi di scrittura nel canale causeranno la generazione di un'eccezione di runtime non specifica.

In caso contrario, questo metodo funziona allo stesso modo del AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler) metodo .

per java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

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

Parametri

Valori restituiti

Implementazioni

Attributi

Commenti

per java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

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

Parametri

attachment
Object

Implementazioni

Attributi

Commenti

per java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a

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

Scrive una sequenza di byte in questo canale da una sottosequenza dei buffer specificati.

[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

Parametri

srcs
ByteBuffer[]

Buffer da cui recuperare i byte

offset
Int32

Offset all'interno della matrice di buffer del primo buffer da cui recuperare i byte; deve essere non negativo e non maggiore di srcs.length

length
Int32

Numero massimo di buffer a cui accedere; deve essere non negativo e non maggiore di srcs.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

Scrive una sequenza di byte in questo canale da una sottosequenza dei buffer specificati. Questa operazione, talvolta denominata <scrittura>/em< di raccolta 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 scrittura viene completata (o ha esito negativo). Il risultato passato al gestore di completamento è il numero di byte scritti.

Questo metodo avvia una scrittura di fino a r byte in questo canale, dove r è il numero totale di byte rimanenti nella sottosequenza specificata della matrice di buffer specificata, ovvero

<blockquote>

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

</blockquote>

al momento del tentativo di scrittura.

Si supponga che venga scritta una sequenza di byte di lunghezza n , dove 0 <  n <=  r. Fino ai primi srcs[offset].remaining() byte di questa sequenza vengono scritti dal buffer srcs[offset], fino ai byte successivi srcs[offset+1].remaining() vengono scritti dal buffer srcs[offset+1]e così via, fino a quando non viene scritta l'intera sequenza di byte. Il maggior numero possibile di byte vengono scritti da 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 può garantire che i byte non siano stati scritti o non vengano scritti nel canale dai buffer specificati, quindi ulteriori tentativi di scrivere nel canale causeranno la generazione di un'eccezione di runtime non specifica.

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

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a