Socket.ReceiveAsync 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
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
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 asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Socket Telah ditutup.
Terjadi kesalahan saat mencoba mengakses soket.
Berlaku untuk
ReceiveAsync(IList<ArraySegment<Byte>>)
- 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 asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Parameter buffers
null.
Socket Telah ditutup.
Terjadi kesalahan saat mencoba mengakses soket.
Keterangan
Metode ini disimpan dalam tugas yang menampilkan 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
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
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 SocketAsyncEventArgs objek yang ditentukan dalam e
parameter .
Socket Telah ditutup.
Terjadi kesalahan saat mencoba mengakses soket.
Keterangan
Metode ReceiveAsync ini digunakan pada soket yang terhubung atau soket tanpa koneksi terikat 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:
SocketAsyncEventArgs.Buffer atau SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count jika SocketAsyncEventArgs.Buffer diatur
SocketAsyncEventArgs.Offset jika SocketAsyncEventArgs.Buffer diatur
Penelepon 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 dengan 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 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 lancar. 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
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 asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Socket Telah ditutup.
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
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 asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Parameter buffers
null.
Socket Telah ditutup.
Terjadi kesalahan saat mencoba mengakses soket.
Keterangan
Metode ini disimpan dalam tugas yang menampilkan 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
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
- cancellationToken
- CancellationToken
Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.
Mengembalikan
Tugas asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Socket Telah ditutup.
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
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
- 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
Tugas asinkron yang selesai dengan jumlah byte yang diterima.
Pengecualian
Socket Telah ditutup.
Terjadi kesalahan saat mencoba mengakses soket.
Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.