AsynchronousSocketChannel.Read Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler) |
Liest eine Abfolge von Bytes aus diesem Kanal in eine Untermenge der angegebenen Puffer. |
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler) |
Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer. |
Read(ByteBuffer) | |
Read(ByteBuffer, Object, ICompletionHandler) |
Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)
Liest eine Abfolge von Bytes aus diesem Kanal in eine Untermenge der angegebenen Puffer.
[Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read (Java.Nio.ByteBuffer[]? dsts, int offset, int length, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "([Ljava/nio/ByteBuffer;IIJLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer[] * int * int * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parameter
- dsts
- ByteBuffer[]
Die Puffer, in die Bytes übertragen werden sollen
- offset
- Int32
Der Offset innerhalb des Pufferarrays des ersten Puffers, in den Bytes übertragen werden sollen; darf nicht negativ und nicht größer als dsts.length
- length
- Int32
Die maximale Anzahl von Puffern, auf die zugegriffen werden soll; darf nicht negativ und nicht größer als dsts.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
Liest eine Abfolge von Bytes aus diesem Kanal in eine Untermenge der angegebenen Puffer. Dieser Vorgang, der manchmal als <Em-Punkt-Lese><-/Em> bezeichnet wird, ist häufig nützlich, wenn Netzwerkprotokolle implementiert werden, die Daten in Segmente gruppieren, die aus einer oder mehreren Headern mit fester Länge bestehen, gefolgt von einem Textkörper mit variabler Länge. Der handler
Parameter ist ein Vervollständigungshandler, der aufgerufen wird, wenn der Lesevorgang abgeschlossen ist (oder ein Fehler auftritt). Das an den Abschlusshandler übergebene Ergebnis ist die Anzahl der gelesenen Bytes oder -1
wenn keine Bytes gelesen werden konnten, da der Kanal das Ende des Datenstroms erreicht hat.
Diese Methode initiiert einen Lesevorgang von bis zu r Bytes aus diesem Kanal, wobei r die Gesamtanzahl der Bytes ist, die in der angegebenen Untermenge des angegebenen Pufferarrays verbleiben, d. h.
<Blockquote>
dsts[offset].remaining()
+ dsts[offset+1].remaining()
+ ... + dsts[offset+length-1].remaining()
</blockquote>
zu dem Zeitpunkt, zu dem der Lesevorgang versucht wird.
Angenommen, eine Bytesequenz der Länge n wird gelesen, wobei 0
<
n <=
r. Bis zu den ersten dsts[offset].remaining()
Byte dieser Sequenz werden in Puffer dsts[offset]
übertragen, bis zu den nächsten dsts[offset+1].remaining()
Bytes in Puffer dsts[offset+1]
übertragen und so weiter, bis die gesamte Bytesequenz in die angegebenen Puffer übertragen wird. So viele Bytes wie möglich werden in jeden Puffer übertragen, 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 InterruptedByTimeoutException
abgeschlossen. Wenn ein Timeout auftritt, und die Implementierung kann nicht garantieren, dass Bytes nicht gelesen wurden oder nicht aus dem Kanal in die angegebenen Puffer gelesen werden, dann führen weitere Versuche zum Lesen aus dem Kanal zu einer unspezifischen Laufzeitausnahme.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)
Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read (Java.Nio.ByteBuffer? dst, long timeout, Java.Util.Concurrent.TimeUnit? unit, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetRead_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 Read : Java.Nio.ByteBuffer * int64 * Java.Util.Concurrent.TimeUnit * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parameter
- dst
- ByteBuffer
Der Puffer, in den Bytes übertragen 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
Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.
Diese Methode initiiert einen asynchronen Lesevorgang, um eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer zu lesen. Der handler
Parameter ist ein Vervollständigungshandler, der aufgerufen wird, wenn der Lesevorgang abgeschlossen ist (oder ein Fehler auftritt). Das an den Abschlusshandler übergebene Ergebnis ist die Anzahl der gelesenen Bytes oder -1
wenn keine Bytes gelesen werden konnten, da der Kanal das Ende des Datenstroms erreicht hat.
Wenn ein Timeout angegeben ist und das Timeout vor Abschluss des Vorgangs verstrichen ist, wird der Vorgang mit der Ausnahme InterruptedByTimeoutException
abgeschlossen. Wenn ein Timeout auftritt, und die Implementierung kann nicht garantieren, dass Bytes nicht gelesen wurden oder nicht aus dem Kanal in den angegebenen Puffer gelesen werden, dann führen weitere Versuche zum Lesen aus dem Kanal zu einer unspezifischen Laufzeitausnahme.
Andernfalls funktioniert diese Methode auf die gleiche Weise wie die AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler)
Methode.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Read(ByteBuffer)
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Read (Java.Nio.ByteBuffer? dst);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;)Ljava/util/concurrent/Future;", "GetRead_Ljava_nio_ByteBuffer_Handler", ApiSince=26)>]
abstract member Read : Java.Nio.ByteBuffer -> Java.Util.Concurrent.IFuture
Parameter
- dst
- ByteBuffer
Gibt zurück
Implementiert
- Attribute
Hinweise
Java-Dokumentation für java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer)
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Gilt für:
Read(ByteBuffer, Object, ICompletionHandler)
[Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Read (Java.Nio.ByteBuffer? dst, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("read", "(Ljava/nio/ByteBuffer;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
override this.Read : Java.Nio.ByteBuffer * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit
Parameter
- dst
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
Implementiert
- Attribute
Hinweise
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.