AsynchronousSocketChannel.Read メソッド

定義

オーバーロード

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

このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。

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

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

Read(ByteBuffer)
Read(ByteBuffer, Object, ICompletionHandler)

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

このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。

[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

パラメーター

dsts
ByteBuffer[]

バイトの転送先となるバッファー

offset
Int32

バイトの転送先となる最初のバッファーのバッファー配列内のオフセット。負以外の値を指定する必要があり、次の値を超える値を指定する必要があります。 dsts.length

length
Int32

アクセスするバッファーの最大数。負以外の値を指定する必要があり、次の値を超える値を指定する必要があります。 dsts.length - offset

timeout
Int64

I/O 操作が完了するまでの最大時間

unit
TimeUnit

引数の timeout 時間単位

attachment
Object

I/O 操作にアタッチするオブジェクト。を指定できます null

handler
ICompletionHandler

結果を使用するためのハンドラー

属性

注釈

このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。 この操作 (em>散乱読み取<り/em> とも呼ばれます<) は、多くの場合、データを 1 つ以上の固定長ヘッダーとそれに続く可変長本文で構成されるセグメントにグループ化するネットワーク プロトコルを実装する場合に役立ちます。 パラメーターは handler 、読み取り操作が完了 (または失敗) したときに呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、読み取られたバイト数、または -1 チャネルがストリームの終わりに達したためにバイトを読み取ることができなかった場合です。

このメソッドは、このチャネルから最大 r バイトの読み取りを開始します。 ここで、r は、指定されたバッファー配列の指定されたサブシーケンスに残っている合計バイト数です。つまり、

<blockquote>

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

</blockquote>

読み取りが試行された時点で。

長さ n のバイト シーケンスが読み取られたとします。ここで 0 、nbsp&;< nbsp を&します。n <= r. このシーケンスの最初 dsts[offset].remaining() のバイトまでバッファー dsts[offset]に転送され、次 dsts[offset+1].remaining() のバイトまでがバッファー dsts[offset+1]に転送されます。また、バイト シーケンス全体が指定されたバッファーに転送されるまでは、次のバイトがバッファーに転送されます。 可能な限り多くのバイトが各バッファーに転送されるため、最後に更新されたバッファーを除く、更新された各バッファーの最終位置は、そのバッファーの制限と等しいことが保証されます。 基になるオペレーティング システムでは、I/O 操作で使用できるバッファーの数に制限が課される場合があります。 バッファーの数 (残りバイト数) がこの制限を超えると、I/O 操作はオペレーティング システムで許可されるバッファーの最大数で実行されます。

タイムアウトが指定され、操作が完了する前にタイムアウトが経過すると、 は例外 InterruptedByTimeoutExceptionで完了します。 タイムアウトが発生し、実装ではバイトが読み取られなかったか、チャネルから指定されたバッファーに読み取られないことを保証できません。その後、チャネルから読み取りを試みると、指定されていないランタイム例外がスローされます。

の Java ドキュメント java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer[], int, int, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Long, ? super A>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

[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

パラメーター

dst
ByteBuffer

バイトの転送先となるバッファー

timeout
Int64

I/O 操作が完了するまでの最大時間

unit
TimeUnit

引数の timeout 時間単位

attachment
Object

I/O 操作にアタッチするオブジェクト。を指定できます null

handler
ICompletionHandler

結果を使用するためのハンドラー

属性

注釈

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

このメソッドは、このチャネルから特定のバッファーにバイトシーケンスを読み取る非同期読み取り操作を開始します。 パラメーターは handler 、読み取り操作が完了 (または失敗) したときに呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、読み取られたバイト数、または -1 チャネルがストリームの終わりに達したためにバイトを読み取ることができなかった場合です。

タイムアウトが指定され、操作が完了する前にタイムアウトが経過すると、操作は例外 InterruptedByTimeoutExceptionで完了します。 タイムアウトが発生し、実装ではバイトが読み取られなかったか、チャネルから指定されたバッファーに読み取られないことを保証できません。その後、チャネルから読み取ろうとすると、指定されていないランタイム例外がスローされます。

それ以外の場合、このメソッドは メソッドと同じ方法で AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler) 動作します。

の Java ドキュメント java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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

パラメーター

戻り値

実装

属性

注釈

の Java ドキュメント java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

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

パラメーター

attachment
Object

実装

属性

注釈

の Java ドキュメント java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象