Bagikan melalui


Socket.EndSend Metode

Definisi

Mengakhiri pengiriman asinkron yang tertunda.

Overload

EndSend(IAsyncResult)

Mengakhiri pengiriman asinkron yang tertunda.

EndSend(IAsyncResult, SocketError)

Mengakhiri pengiriman asinkron yang tertunda.

EndSend(IAsyncResult)

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

Mengakhiri pengiriman asinkron yang tertunda.

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

Parameter

asyncResult
IAsyncResult

Yang IAsyncResult menyimpan informasi status untuk operasi asinkron ini.

Mengembalikan

Jika berhasil, jumlah byte yang dikirim ke Socket; jika tidak, kesalahan tidak valid Socket .

Pengecualian

asyncResultadalah null.

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

EndSend(IAsyncResult) sebelumnya dipanggil untuk pengiriman 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.

EndSend menyelesaikan operasi yang dimulai oleh BeginSend. Anda perlu meneruskan yang IAsyncResult dibuat oleh panggilan yang BeginSend cocok.

Jika Anda menggunakan protokol tanpa koneksi, EndSend akan memblokir hingga datagram dikirim. Jika Anda menggunakan protokol berorientasi koneksi, EndSend akan memblokir hingga beberapa buffer dikirim. Jika nilai yang dikembalikan dari EndSend menunjukkan bahwa buffer tidak sepenuhnya dikirim, panggil BeginSend metode lagi, memodifikasi buffer untuk menyimpan data yang tidak terkirim.

Tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang BeginSend berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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

EndSend(IAsyncResult, SocketError)

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

Mengakhiri pengiriman asinkron yang tertunda.

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

Parameter

asyncResult
IAsyncResult

Yang IAsyncResult menyimpan informasi status untuk operasi asinkron ini.

errorCode
SocketError

Objek SocketError yang menyimpan kesalahan soket.

Mengembalikan

Jika berhasil, jumlah byte yang dikirim ke Socket; jika tidak, kesalahan tidak valid Socket .

Pengecualian

asyncResultadalah null.

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

EndSend(IAsyncResult) sebelumnya dipanggil untuk pengiriman 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.

EndSend menyelesaikan operasi yang dimulai oleh BeginSend. Anda perlu meneruskan yang IAsyncResult dibuat oleh panggilan yang BeginSend cocok.

Jika Anda menggunakan protokol tanpa koneksi, EndSend akan memblokir hingga datagram dikirim. Jika Anda menggunakan protokol berorientasi koneksi, EndSend akan memblokir hingga beberapa buffer dikirim. Jika nilai yang dikembalikan dari EndSend menunjukkan bahwa buffer tidak sepenuhnya dikirim, panggil BeginSend metode lagi, memodifikasi buffer untuk menyimpan data yang tidak terkirim.

Tidak ada jaminan bahwa data yang Anda kirim akan segera muncul di jaringan. Untuk meningkatkan efisiensi jaringan, sistem yang mendasar dapat menunda transmisi hingga sejumlah besar data keluar dikumpulkan. Penyelesaian metode yang BeginSend berhasil berarti bahwa sistem yang mendasar telah memiliki ruang untuk buffer data Anda untuk pengiriman jaringan.

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

Keberhasilan penyelesaian pengiriman tidak menunjukkan bahwa data berhasil dikirimkan. Jika tidak ada ruang buffer yang tersedia dalam sistem transportasi untuk menahan data yang akan dikirimkan, kirim akan memblokir kecuali soket telah ditempatkan dalam mode nonblocking.

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