AsynchronousSocketChannel.Write Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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.
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
- src
- ByteBuffer
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
- src
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
Implementações
- Atributos
Comentários
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.
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.