Socket.EndSend 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.
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
asyncResult
adalah null
.
asyncResult
tidak dikembalikan oleh panggilan ke BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metode .
EndSend(IAsyncResult) sebelumnya dipanggil untuk pengiriman asinkron.
.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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
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
asyncResult
adalah null
.
asyncResult
tidak dikembalikan oleh panggilan ke BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metode .
EndSend(IAsyncResult) sebelumnya dipanggil untuk pengiriman asinkron.
.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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay