AsynchronousSocketChannel.Write Метод

Определение

Перегрузки

Имя Описание
Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Записывает последовательность байтов в этот канал из заданного буфера.

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

Записывает последовательность байтов в этот канал из подсефференции заданных буферов.

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

Записывает последовательность байтов в этот канал из заданного буфера.

[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

Параметры

src
ByteBuffer

Буфер, из которого извлекаются байты

timeout
Int64

Максимальное время завершения операции ввода-вывода

unit
TimeUnit

Единица времени аргумента timeout

attachment
Object

Объект для подключения к операции ввода-вывода; может быть null

handler
ICompletionHandler

Обработчик для использования результата

Атрибуты

Комментарии

Записывает последовательность байтов в этот канал из заданного буфера.

Этот метод инициирует асинхронную операцию записи для записи последовательности байтов в этот канал из заданного буфера. Параметр handler — это обработчик завершения, который вызывается при завершении операции записи (или завершается сбоем). Результатом, переданным обработчику завершения, является число записанных байтов.

Если задано время ожидания и истекает время ожидания, прежде чем операция завершится, она завершается с исключением InterruptedByTimeoutException. Где происходит время ожидания, и реализация не может гарантировать, что байты не были записаны или не будут записаны в канал из заданного буфера, а затем дальнейшие попытки записи в канал приведет к возникновению непредвидимого исключения среды выполнения.

В противном случае этот метод работает так же, как AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler) и метод.

Java документации по java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

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

Параметры

Возвращаемое значение

Реализации

Атрибуты

Комментарии

Java документации по java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

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

Параметры

attachment
Object

Реализации

Атрибуты

Комментарии

Java документации по java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к

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

Записывает последовательность байтов в этот канал из подсефференции заданных буферов.

[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

Параметры

srcs
ByteBuffer[]

Буферы, из которых извлекаются байты

offset
Int32

Смещение в массиве буфера первого буфера, из которого извлекаются байты; должно быть не отрицательным и не больше srcs.length

length
Int32

Максимальное число доступных буферов; должно быть не отрицательным и не больше srcs.length - offset

timeout
Int64

Максимальное время завершения операции ввода-вывода

unit
TimeUnit

Единица времени аргумента timeout

attachment
Object

Объект для подключения к операции ввода-вывода; может быть null

handler
ICompletionHandler

Обработчик для использования результата

Атрибуты

Комментарии

Записывает последовательность байтов в этот канал из подсефференции заданных буферов. Эта операция, иногда называемая методом <>записи и< записи> em, часто полезна при реализации сетевых протоколов, которые группирует данные в сегменты, состоящие из одного или нескольких заголовков фиксированной длины, за которым следует тело переменной длины. Параметр handler — это обработчик завершения, который вызывается при завершении операции записи (или завершается сбоем). Результатом, переданным обработчику завершения, является число записанных байтов.

Этот метод инициирует запись до r байтов в этот канал, где r — общее число байтов, оставшихся в заданном подсезоне заданного буферного массива, т. е.

<blockquote>

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

</blockquote>

в момент попытки записи.

Предположим, что записывается последовательность байтов длины n , где 0><> n><=> r. До первых srcs[offset].remaining() байт этой последовательности записываются из буфера, до следующих srcs[offset] байтов записываются из буфера srcs[offset+1].remaining()srcs[offset+1]и т. д., пока не будет записана вся последовательность байтов. Как можно больше байтов записываются из каждого буфера, поэтому окончательное положение каждого обновленного буфера, за исключением последнего обновленного буфера, гарантированно равно ограничению этого буфера. Базовая операционная система может наложить ограничение на количество буферов, которые могут использоваться в операции ввода-вывода. Где число буферов (с оставшимися байтами), превышает это ограничение, то операция ввода-вывода выполняется с максимальным количеством буферов, разрешенных операционной системой.

Если задано время ожидания и истекает время ожидания, прежде чем операция завершится, она завершается с исключением InterruptedByTimeoutException. Когда происходит время ожидания, и реализация не может гарантировать, что байты не были записаны или не будут записаны в канал из заданных буферов, а затем дальнейшие попытки записи в канал приведет к возникновению непредвидимого исключения среды выполнения.

Java документации по 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>).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к