Sprache

AsynchronousSocketChannel.Write Methode

Definition

Überlädt

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

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal.

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

Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.

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

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal.

[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

Parameter

src
ByteBuffer

Der Puffer, aus dem Bytes abgerufen werden sollen

timeout
Int64

Die maximale Zeit für den Abschluss des E/A-Vorgangs

unit
TimeUnit

Die Zeiteinheit des timeout Arguments

attachment
Object

Das Objekt, das an den E/A-Vorgang angefügt werden soll; kann sein null

handler
ICompletionHandler

Der Handler für die Verwendung des Ergebnisses

Attribute

Hinweise

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal.

Diese Methode initiiert einen asynchronen Schreibvorgang, um eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal zu schreiben. Der handler Parameter ist ein Abschlusshandler, der aufgerufen wird, wenn der Schreibvorgang abgeschlossen ist (oder ein Fehler auftritt). Das an den Abschlusshandler übergebene Ergebnis ist die Anzahl der geschriebenen Bytes.

Wenn ein Timeout angegeben ist und das Timeout vor Abschluss des Vorgangs verstrichen ist, wird es mit der Ausnahme InterruptedByTimeoutExceptionabgeschlossen. Wenn ein Timeout auftritt und die Implementierung nicht garantieren kann, dass Bytes nicht geschrieben wurden oder nicht aus dem angegebenen Puffer in den Kanal geschrieben werden, führt dies zu weiteren Versuchen, in den Kanal zu schreiben, zu einer unspezifischen Laufzeitausnahme.

Andernfalls funktioniert diese Methode auf die gleiche Weise wie die AsynchronousByteChannel#write(ByteBuffer,Object,CompletionHandler) Methode.

Java Dokumentation für java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Parameter

Gibt zurück

Implementiert

Attribute

Hinweise

Java Dokumentation für java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Parameter

attachment
Object

Implementiert

Attribute

Hinweise

Java Dokumentation für java.nio.channels.AsynchronousSocketChannel.write(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.

[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

Parameter

srcs
ByteBuffer[]

Die Puffer, aus denen Bytes abgerufen werden sollen

offset
Int32

Der Offset innerhalb des Pufferarrays des ersten Puffers, aus dem Bytes abgerufen werden sollen; darf nicht negativ und nicht größer als srcs.length

length
Int32

Die maximale Anzahl von Puffern, auf die zugegriffen werden soll; darf nicht negativ und nicht größer als srcs.length - offset

timeout
Int64

Die maximale Zeit für den Abschluss des E/A-Vorgangs

unit
TimeUnit

Die Zeiteinheit des timeout Arguments

attachment
Object

Das Objekt, das an den E/A-Vorgang angefügt werden soll; kann sein null

handler
ICompletionHandler

Der Handler für die Verwendung des Ergebnisses

Attribute

Hinweise

Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal. Dieser Vorgang, der manchmal als Em-Sammeln<von Schreib>-/Em< bezeichnet >wird, ist häufig nützlich, wenn Netzwerkprotokolle implementiert werden, die Daten in Segmente gruppieren, die aus einem oder mehreren Headern mit fester Länge bestehen, gefolgt von einem Textkörper mit variabler Länge. Der handler Parameter ist ein Abschlusshandler, der aufgerufen wird, wenn der Schreibvorgang abgeschlossen ist (oder ein Fehler auftritt). Das an den Abschlusshandler übergebene Ergebnis ist die Anzahl der geschriebenen Bytes.

Diese Methode initiiert einen Schreibvorgang von bis zu r Bytes in diesen Kanal, wobei r die Gesamtanzahl der Bytes ist, die in der angegebenen Untermenge des angegebenen Pufferarrays verbleiben, d. h.

<Blockquote>

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

</blockquote>

im Moment, in dem der Schreibvorgang versucht wird.

Angenommen, eine Bytesequenz der Länge n wird geschrieben, wobei 0 <  n <=  r. Bis zu den ersten srcs[offset].remaining() Bytes dieser Sequenz werden vom Puffer srcs[offset]geschrieben, bis zu den nächsten srcs[offset+1].remaining() Bytes aus dem Puffer srcs[offset+1]usw. geschrieben, bis die gesamte Bytesequenz geschrieben wird. So viele Bytes wie möglich werden aus jedem Puffer geschrieben, daher ist die endgültige Position jedes aktualisierten Puffers, mit Ausnahme des letzten aktualisierten Puffers, garantiert gleich dem Grenzwert dieses Puffers. Das zugrunde liegende Betriebssystem kann eine Beschränkung der Anzahl von Puffern auferlegen, die in einem E/A-Vorgang verwendet werden können. Wenn die Anzahl der Puffer (mit verbleibenden Bytes) diesen Grenzwert überschreitet, wird der E/A-Vorgang mit der maximalen Anzahl von Puffern ausgeführt, die vom Betriebssystem zulässig sind.

Wenn ein Timeout angegeben ist und das Timeout vor Abschluss des Vorgangs verstrichen ist, wird es mit der Ausnahme InterruptedByTimeoutExceptionabgeschlossen. Wenn ein Timeout auftritt, und die Implementierung kann nicht garantieren, dass Bytes nicht geschrieben wurden oder nicht aus den angegebenen Puffern in den Kanal geschrieben werden, dann führen weitere Versuche zum Schreiben in den Kanal zu einer unspezifischen Laufzeitausnahme.

Java Dokumentation für 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>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: