AsynchronousSocketChannel.Read Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
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 .
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
- dst
- ByteBuffer
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
- dst
- ByteBuffer
- attachment
- Object
- handler
- ICompletionHandler
Penerapan
- Atribut
Keterangan
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.