Bagikan melalui


AsynchronousSocketChannel.Read Metode

Definisi

Overload

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

Membaca urutan byte dari saluran ini ke dalam urutan berikutnya dari buffer yang diberikan.

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

Membaca urutan byte dari saluran ini ke dalam buffer yang diberikan.

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

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

Membaca urutan byte dari saluran ini ke dalam urutan berikutnya dari buffer yang diberikan.

[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[]

Buffer tempat byte akan ditransfer

offset
Int32

Offset dalam array buffer dari buffer pertama tempat byte akan ditransfer; harus non-negatif dan tidak lebih besar dari dsts.length

length
Int32

Jumlah maksimum buffer yang akan diakses; harus non-negatif dan tidak lebih besar dari dsts.length - offset

timeout
Int64

Waktu maksimum untuk operasi I/O selesai

unit
TimeUnit

Unit timeout waktu argumen

attachment
Object

Objek yang akan dilampirkan ke operasi I/O; dapat berupa null

handler
ICompletionHandler

Handler untuk mengkonsumsi hasil

Atribut

Keterangan

Membaca urutan byte dari saluran ini ke dalam urutan berikutnya dari buffer yang diberikan. Operasi ini, kadang-kadang disebut <em>menyebarkan read</em>, sering berguna saat menerapkan protokol jaringan yang mengelompokkan data ke dalam segmen yang terdiri dari satu atau beberapa header panjang tetap diikuti oleh isi panjang variabel. Parameter handler adalah handler penyelesaian yang dipanggil ketika operasi baca selesai (atau gagal). Hasil yang diteruskan ke handler penyelesaian adalah jumlah byte yang dibaca atau -1 jika tidak ada byte yang dapat dibaca karena saluran telah mencapai akhir aliran.

Metode ini memulai pembacaan hingga r byte dari saluran ini, di mana r adalah jumlah total byte yang tersisa dalam subsekuensi yang ditentukan dari array buffer yang diberikan, yaitu,

<blockquote>

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

</blockquote>

pada saat pembacaan dicoba.

Misalkan urutan byte panjang n dibaca, di mana 0 < n <= r. Hingga byte pertama dsts[offset].remaining() dari urutan ini ditransfer ke buffer dsts[offset], hingga byte berikutnya dsts[offset+1].remaining() ditransfer ke buffer dsts[offset+1], dan sebagainya, sampai seluruh urutan byte ditransfer ke buffer yang diberikan. Sebanyak mungkin byte ditransfer ke setiap buffer, oleh karena itu posisi akhir dari setiap buffer yang diperbarui, kecuali buffer terakhir yang diperbarui, dijamin sama dengan batas buffer tersebut. Sistem operasi yang mendasar dapat memberlakukan batasan jumlah buffer yang dapat digunakan dalam operasi I/O. Di mana jumlah buffer (dengan byte tersisa), melebihi batas ini, maka operasi I/O dilakukan dengan jumlah maksimum buffer yang diizinkan oleh sistem operasi.

Jika batas waktu ditentukan dan batas waktu berlalu sebelum operasi selesai maka selesai dengan pengecualian InterruptedByTimeoutException. Ketika waktu habis terjadi, dan implementasi tidak dapat menjamin bahwa byte belum dibaca, atau tidak akan dibaca dari saluran ke buffer yang diberikan, maka upaya lebih lanjut untuk membaca dari saluran akan menyebabkan pengecualian runtime yang tidak jelas dilemparkan.

Dokumentasi Java untuk 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>).

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk

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

Membaca urutan byte dari saluran ini ke dalam buffer yang diberikan.

[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

Buffer tempat byte akan ditransfer

timeout
Int64

Waktu maksimum untuk operasi I/O selesai

unit
TimeUnit

Unit timeout waktu argumen

attachment
Object

Objek yang akan dilampirkan ke operasi I/O; dapat berupa null

handler
ICompletionHandler

Handler untuk mengkonsumsi hasil

Atribut

Keterangan

Membaca urutan byte dari saluran ini ke dalam buffer yang diberikan.

Metode ini memulai operasi baca asinkron untuk membaca urutan byte dari saluran ini ke dalam buffer yang diberikan. Parameter handler adalah handler penyelesaian yang dipanggil ketika operasi baca selesai (atau gagal). Hasil yang diteruskan ke handler penyelesaian adalah jumlah byte yang dibaca atau -1 jika tidak ada byte yang dapat dibaca karena saluran telah mencapai akhir aliran.

Jika batas waktu ditentukan dan batas waktu berlalu sebelum operasi selesai, maka operasi selesai dengan pengecualian InterruptedByTimeoutException. Ketika waktu habis terjadi, dan implementasi tidak dapat menjamin bahwa byte belum dibaca, atau tidak akan dibaca dari saluran ke buffer yang diberikan, maka upaya lebih lanjut untuk membaca dari saluran akan menyebabkan pengecualian runtime yang tidak jelas dilemparkan.

Jika tidak, metode ini bekerja dengan cara yang sama dengan AsynchronousByteChannel#read(ByteBuffer,Object,CompletionHandler) metode .

Dokumentasi Java untuk java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, long, java.util.concurrent.TimeUnit, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk

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

Mengembalikan

Penerapan

Atribut

Keterangan

Dokumentasi Java untuk java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer).

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk

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

attachment
Object

Penerapan

Atribut

Keterangan

Dokumentasi Java untuk java.nio.channels.AsynchronousSocketChannel.read(java.nio.ByteBuffer, A, java.nio.channels.CompletionHandler<java.lang.Integer, ? super A>).

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Berlaku untuk