Bagikan melalui


Socket.EndReceive Metode

Definisi

Mengakhiri pembacaan asinkron yang tertunda.

Overload

Nama Deskripsi
EndReceive(IAsyncResult)

Mengakhiri pembacaan asinkron yang tertunda.

EndReceive(IAsyncResult, SocketError)

Mengakhiri pembacaan asinkron yang tertunda.

EndReceive(IAsyncResult)

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

Mengakhiri pembacaan asinkron yang tertunda.

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer

Parameter

asyncResult
IAsyncResult

Yang IAsyncResult menyimpan informasi status dan data yang ditentukan pengguna untuk operasi asinkron ini.

Mengembalikan

Jumlah total byte yang diterima. Metode mengembalikan 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

asyncResult adalah null.

asyncResult tidak dikembalikan oleh panggilan ke BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metode .

EndReceive(IAsyncResult) sebelumnya dipanggil untuk pembacaan asinkron.

Terjadi kesalahan saat mencoba mengakses soket.

-atau-

Hanya .NET 7+: Socket Telah ditutup.

.NET Framework, .NET Core, dan .NET 5-6 saja: Socket telah ditutup.

Keterangan

Penting

Ini adalah API kompatibilitas. Kami tidak merekomendasikan penggunaan metode APM (Begin* dan End*) untuk pengembangan baru. Sebagai gantinya Task, gunakan setara berbasis.

EndReceive menyelesaikan operasi yang dimulai oleh BeginReceive. Anda perlu meneruskan yang IAsyncResult dibuat oleh panggilan yang BeginReceive cocok.

Metode EndReceive ini akan memblokir hingga data tersedia. Jika Anda menggunakan protokol tanpa koneksi, EndReceive akan membaca datagram antrean pertama yang tersedia di buffer jaringan masuk. Jika Anda menggunakan protokol berorientasi koneksi, EndReceive metode akan membaca data sebanyak yang tersedia hingga jumlah byte yang Anda tentukan dalam size parameter BeginReceive metode . Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, EndReceive metode akan segera selesai dan mengembalikan nol byte.

Nota

Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu.

Nota

Semua I/O yang dimulai oleh utas tertentu dibatalkan ketika utas tersebut keluar. Operasi asinkron yang tertunda dapat gagal jika utas keluar sebelum operasi selesai.

Nota

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk

EndReceive(IAsyncResult, SocketError)

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

Mengakhiri pembacaan asinkron yang tertunda.

public:
 int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

Parameter

asyncResult
IAsyncResult

Yang IAsyncResult menyimpan informasi status dan data yang ditentukan pengguna untuk operasi asinkron ini.

errorCode
SocketError

Objek SocketError yang menyimpan kesalahan soket.

Mengembalikan

Jumlah total byte yang diterima. Metode mengembalikan 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

asyncResult adalah null.

asyncResult tidak dikembalikan oleh panggilan ke BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metode .

EndReceive(IAsyncResult) sebelumnya dipanggil untuk pembacaan asinkron.

Terjadi kesalahan saat mencoba mengakses soket.

-atau-

Hanya .NET 7+: Socket Telah ditutup.

.NET Framework, .NET Core, dan .NET 5-6 saja: Socket telah ditutup.

Keterangan

Penting

Ini adalah API kompatibilitas. Kami tidak merekomendasikan penggunaan metode APM (Begin* dan End*) untuk pengembangan baru. Sebagai gantinya Task, gunakan setara berbasis.

EndReceive menyelesaikan operasi yang dimulai oleh BeginReceive. Anda perlu meneruskan yang IAsyncResult dibuat oleh panggilan yang BeginReceive cocok.

Metode EndReceive ini akan memblokir hingga data tersedia. Jika Anda menggunakan protokol tanpa koneksi, EndReceive akan membaca datagram antrean pertama yang tersedia di buffer jaringan masuk. Jika Anda menggunakan protokol berorientasi koneksi, EndReceive metode akan membaca data sebanyak yang tersedia hingga jumlah byte yang Anda tentukan dalam size parameter BeginReceive metode . Jika host jarak jauh mematikan Socket koneksi dengan Shutdown metode , dan semua data yang tersedia telah diterima, EndReceive metode akan segera selesai dan mengembalikan nol byte.

Nota

Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu.

Nota

Semua I/O yang dimulai oleh utas tertentu dibatalkan ketika utas tersebut keluar. Operasi asinkron yang tertunda dapat gagal jika utas keluar sebelum operasi selesai.

Nota

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk