AsynchronousSocketChannel.Write Método

Definição

Sobrecargas

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

Grava uma sequência de bytes nesse canal do buffer fornecido.

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

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

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

Grava uma sequência de bytes nesse canal do buffer fornecido.

[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

Parâmetros

src
ByteBuffer

O buffer do qual os bytes devem ser recuperados

timeout
Int64

O tempo máximo para a operação de E/S ser concluída

unit
TimeUnit

A unidade de tempo do timeout argumento

attachment
Object

O objeto a ser anexado à operação de E/S; pode ser null

handler
ICompletionHandler

O manipulador para consumir o resultado

Atributos

Comentários

Grava uma sequência de bytes nesse canal do buffer fornecido.

Esse método inicia uma operação de gravação assíncrona para gravar uma sequência de bytes nesse canal do buffer fornecido. O handler parâmetro é um manipulador de conclusão que é invocado quando a operação de gravação é concluída (ou falha). O resultado passado para o manipulador de conclusão é o número de bytes gravados.

Se um tempo limite for especificado e o tempo limite passar antes da conclusão da operação, ele será concluído com a exceção InterruptedByTimeoutException. Quando ocorre um tempo limite e a implementação não pode garantir que os bytes não foram gravados ou não serão gravados no canal do buffer fornecido, outras tentativas de gravação no canal farão com que uma exceção de runtime não especificada seja gerada.

Caso contrário, esse método funciona da mesma maneira que o AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler) método.

Java documentação para java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se 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

Parâmetros

Retornos

Implementações

Atributos

Comentários

Java documentação para java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se 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

Parâmetros

attachment
Object

Implementações

Atributos

Comentários

Java documentação para java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a

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

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

[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

Parâmetros

srcs
ByteBuffer[]

Os buffers dos quais os bytes devem ser recuperados

offset
Int32

O deslocamento dentro da matriz de buffer do primeiro buffer do qual os bytes devem ser recuperados; deve ser não negativo e não maior que srcs.length

length
Int32

O número máximo de buffers a serem acessados; deve ser não negativo e não maior que srcs.length - offset

timeout
Int64

O tempo máximo para a operação de E/S ser concluída

unit
TimeUnit

A unidade de tempo do timeout argumento

attachment
Object

O objeto a ser anexado à operação de E/S; pode ser null

handler
ICompletionHandler

O manipulador para consumir o resultado

Atributos

Comentários

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos. Essa operação, às vezes chamada de <>gravação</em> coleta de em, geralmente é útil ao implementar protocolos de rede que agrupam dados em segmentos que consistem em um ou mais cabeçalhos de comprimento fixo seguidos por um corpo de comprimento variável. O handler parâmetro é um manipulador de conclusão que é invocado quando a operação de gravação é concluída (ou falha). O resultado passado para o manipulador de conclusão é o número de bytes gravados.

Esse método inicia uma gravação de até r bytes para este canal, onde r é o número total de bytes restantes na subsequência especificada da matriz de buffer fornecida, ou seja,

<blockquote>

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

</blockquote>

no momento em que a gravação é tentada.

Suponha que uma sequência de bytes de comprimento n seja escrita, em 0que  <  n <=  r. Até os primeiros srcs[offset].remaining() bytes dessa sequência são gravados do buffer srcs[offset], até os próximos srcs[offset+1].remaining() bytes são gravados do buffer srcs[offset+1]e assim por diante, até que toda a sequência de bytes seja gravada. O maior número possível de bytes são gravados de cada buffer, portanto, a posição final de cada buffer atualizado, exceto o último buffer atualizado, é garantida como igual ao limite desse buffer. O sistema operacional subjacente pode impor um limite ao número de buffers que podem ser usados em uma operação de E/S. Quando o número de buffers (com bytes restantes), excede esse limite, a operação de E/S é executada com o número máximo de buffers permitido pelo sistema operacional.

Se um tempo limite for especificado e o tempo limite passar antes da conclusão da operação, ele será concluído com a exceção InterruptedByTimeoutException. Quando ocorre um tempo limite e a implementação não pode garantir que os bytes não foram gravados ou não serão gravados no canal a partir dos buffers fornecidos, outras tentativas de gravação no canal farão com que uma exceção de runtime não especificada seja gerada.

Java documentação para 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>).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a