Bagikan melalui


Socket.ReceiveAsync Metode

Definisi

Overload

Nama Deskripsi
ReceiveAsync(ArraySegment<Byte>)

Menerima data dari soket yang tersambung.

ReceiveAsync(IList<ArraySegment<Byte>>)

Menerima data dari soket yang tersambung.

ReceiveAsync(SocketAsyncEventArgs)

Memulai permintaan asinkron untuk menerima data dari objek yang tersambung Socket .

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Menerima data dari soket yang tersambung.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Menerima data dari soket yang tersambung.

ReceiveAsync(Memory<Byte>, CancellationToken)

Menerima data dari soket yang tersambung.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Menerima data dari soket yang tersambung.

ReceiveAsync(ArraySegment<Byte>)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync(ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang diterima.

Mengembalikan

Tugas yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca antara buffer nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Berlaku untuk

ReceiveAsync(IList<ArraySegment<Byte>>)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parameter

buffers
IList<ArraySegment<Byte>>

Daftar buffer untuk data yang diterima.

Mengembalikan

Tugas yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca ke dalam buffer antara nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Parameter buffers null.

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Metode ini disimpan dalam tugas yang mengembalikan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh Receive(IList<ArraySegment<Byte>>).

Berlaku untuk

ReceiveAsync(SocketAsyncEventArgs)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Memulai permintaan asinkron untuk menerima data dari objek yang tersambung Socket .

public:
 bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean

Parameter

e
SocketAsyncEventArgs

Objek SocketAsyncEventArgs yang digunakan untuk operasi soket asinkron ini.

Mengembalikan

true jika operasi I/O tertunda. Peristiwa Completed pada e parameter akan dinaikkan setelah menyelesaikan operasi.

false jika operasi I/O selesai secara sinkron. Dalam hal ini, Peristiwa Completed pada e parameter tidak akan dinaikkan dan e objek yang diteruskan sebagai parameter dapat diperiksa segera setelah panggilan metode kembali untuk mengambil hasil operasi.

Pengecualian

Argumen tidak valid. Properti Buffer atau BufferList pada parameter harus mereferensikan e buffer yang valid. Satu atau yang lain dari properti ini dapat diatur, tetapi tidak keduanya pada saat yang sama.

Operasi soket sudah berlangsung menggunakan objek yang SocketAsyncEventArgs ditentukan dalam e parameter .

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Metode ReceiveAsync ini digunakan pada soket yang terhubung atau terikat soket tanpa koneksi dan digunakan untuk membaca data masuk. Alamat lokal soket harus diketahui.

Untuk soket tanpa koneksi terikat, fungsi ini membatasi alamat tempat pesan yang diterima diterima. Fungsi ini hanya mengembalikan pesan dari alamat jarak jauh yang ditentukan dalam koneksi. Pesan dari alamat lain dibuang secara diam-diam.

Properti SocketAsyncEventArgs.SocketFlags pada e parameter menyediakan penyedia layanan Window Sockets dengan informasi tambahan tentang permintaan baca. Untuk informasi selengkapnya tentang cara menggunakan parameter ini, lihat System.Net.Sockets.SocketFlags.

Properti dan peristiwa berikut pada System.Net.Sockets.SocketAsyncEventArgs objek diperlukan agar berhasil memanggil metode ini:

Pemanggil dapat mengatur SocketAsyncEventArgs.UserToken properti ke objek status pengguna apa pun yang diinginkan sebelum memanggil ReceiveAsync metode , sehingga informasi akan dapat diambil dalam metode panggilan balik. Jika panggilan balik membutuhkan lebih banyak informasi daripada satu objek, kelas kecil dapat dibuat untuk menyimpan informasi status lain yang diperlukan sebagai anggota.

Untuk soket gaya aliran byte, data masuk ditempatkan ke dalam buffer hingga buffer terisi, koneksi ditutup, atau data yang di-buffer secara internal habis.

Untuk soket berorientasi pesan, pesan masuk ditempatkan ke dalam buffer hingga ukuran total buffer yang terkait dengan e parameter . Jika pesan lebih besar dari buffer, buffer diisi dengan bagian pertama pesan.

Untuk soket berorientasi koneksi, ReceiveAsync metode ini dapat menunjukkan penghentian sirkuit virtual yang anggun dengan salah satu dari dua cara yang bergantung pada apakah soket berorientasi pada aliran byte atau pesan. Untuk aliran byte, nol byte yang telah dibaca menunjukkan penutupan yang anggun dan tidak ada lagi byte yang akan dibaca. Untuk soket berorientasi pesan, di mana pesan byte nol sering diizinkan, SocketException dengan SocketAsyncEventArgs.SocketError diatur ke kode kesalahan Winsock WSAEDISCON asli (10101) digunakan untuk menunjukkan penutupan yang anggun. Bagaimanapun, SocketException dengan SocketAsyncEventArgs.SocketError diatur ke kode kesalahan Winsock WSAECONNRESET asli (10054) menunjukkan penutupan abortif telah terjadi.

Lihat juga

Berlaku untuk

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai SocketFlags yang akan digunakan saat menerima data.

Mengembalikan

Tugas yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca antara buffer nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Berlaku untuk

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parameter

buffers
IList<ArraySegment<Byte>>

Daftar buffer untuk data yang diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai SocketFlags yang akan digunakan saat menerima data.

Mengembalikan

Tugas yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca antara buffer nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Parameter buffers null.

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Metode ini disimpan dalam tugas yang mengembalikan semua pengecualian non-penggunaan yang dapat dilemparkan oleh rekan sinkron metode. Jika pengecualian disimpan ke dalam tugas yang dikembalikan, pengecualian tersebut akan dilemparkan saat tugas ditunggu. Pengecualian penggunaan, seperti ArgumentException, masih dilemparkan secara sinkron. Untuk pengecualian yang disimpan, lihat pengecualian yang dilemparkan oleh Receive(IList<ArraySegment<Byte>>, SocketFlags).

Berlaku untuk

ReceiveAsync(Memory<Byte>, CancellationToken)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync(Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
Memory<Byte>

Buffer untuk data yang diterima.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.

Mengembalikan

ValueTask<TResult> yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca antara buffer nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs
Sumber:
Socket.Tasks.cs

Menerima data dari soket yang tersambung.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
Memory<Byte>

Buffer untuk data yang diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai SocketFlags yang akan digunakan saat menerima data.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.

Mengembalikan

ValueTask<TResult> yang mewakili operasi penerimaan asinkron. Nilai propertinya Result berisi jumlah total byte yang dibaca antara buffer nol (0) dan jumlah byte yang diminta. Nilai hasilnya adalah nol (0) hanya jika nol byte diminta atau jika tidak ada lagi byte yang tersedia karena soket peer melakukan pematian yang anggun. Jika nol byte diminta, operasi penerimaan dapat segera selesai atau mungkin tidak selesai sampai setidaknya satu byte tersedia (tetapi tanpa mengonsumsi data apa pun).

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk