Bagikan melalui


Socket.EndReceive Metode

Definisi

Mengakhiri pembacaan asinkron yang tertunda.

Overload

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

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 byte yang diterima.

Pengecualian

asyncResultadalah 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 ini EndReceive 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.

Catatan

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

Catatan

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.

Catatan

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

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 byte yang diterima.

Pengecualian

asyncResultadalah 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 ini EndReceive 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.

Catatan

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

Catatan

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.

Catatan

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