Socket.EndSend Metode

Definisi

Mengakhiri pengiriman asinkron yang tertunda.

Overload

Nama Deskripsi
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
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.

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

Important

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 pengembalian dari EndSend menunjukkan bahwa buffer tidak sepenuhnya dikirim, panggil BeginSend metode lagi, memodifikasi buffer untuk menyimpan data yang tidak dikirim.

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 memiliki ruang untuk menyangga data Anda untuk pengiriman jaringan.

Note

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

Note

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.

Note

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.

Note

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

Lihat juga

Berlaku untuk

EndSend(IAsyncResult, SocketError)

Sumber:
Socket.cs
Sumber:
Socket.cs
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.

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

Important

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 pengembalian dari EndSend menunjukkan bahwa buffer tidak sepenuhnya dikirim, panggil BeginSend metode lagi, memodifikasi buffer untuk menyimpan data yang tidak dikirim.

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 memiliki ruang untuk menyangga data Anda untuk pengiriman jaringan.

Note

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

Note

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.

Note

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.

Note

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

Lihat juga

Berlaku untuk