Socket.BeginSend 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.
Mengirim data secara asinkron ke yang tersambung Socket.
Overload
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Mengirim data secara asinkron ke yang tersambung Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Mengirim data secara asinkron ke yang tersambung Socket. |
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Mengirim data secara asinkron ke yang tersambung Socket. |
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Mengirim data secara asinkron ke yang tersambung Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim data secara asinkron ke yang tersambung Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- buffers
- IList<ArraySegment<Byte>>
Array jenis Byte yang berisi data yang akan dikirim.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- callback
- AsyncCallback
Delegasi AsyncCallback .
- state
- Object
Objek yang berisi informasi status untuk permintaan ini.
Mengembalikan
Yang IAsyncResult mereferensikan pengiriman asinkron.
Pengecualian
buffers
adalah null
.
buffers
kosong.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
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.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSend mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSend. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSend metode .
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndSend akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSend juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan BeginSendTo. Tidak apa-apa untuk digunakan BeginSendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil BeginSend dengan melakukan panggilan lain ke Connect atau BeginConnect. Dengan protokol tanpa koneksi, Anda juga harus yakin bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan BeginSend akan melempar SocketException.
Jika Anda menentukan DontRoute bendera sebagai socketflags
parameter, data yang Anda kirim tidak akan dirutekan.
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
state
adalah instansiasi dari kelas yang ditentukan pengguna.
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 ditransmisikan, 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.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.
Lihat juga
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Penyusunan Delegasi sebagai Metode Panggilan Balik
- Contoh Soket Klien Asinkron
- Contoh Soket Server Asinkron
Berlaku untuk
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim data secara asinkron ke yang tersambung Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- buffers
- IList<ArraySegment<Byte>>
Array jenis Byte yang berisi data yang akan dikirim.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- errorCode
- SocketError
Objek SocketError yang menyimpan kesalahan soket.
- callback
- AsyncCallback
Delegasi AsyncCallback .
- state
- Object
Objek yang berisi informasi status untuk permintaan ini.
Mengembalikan
Yang IAsyncResult mereferensikan pengiriman asinkron.
Pengecualian
buffers
adalah null
.
buffers
kosong.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
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.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSend mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSend. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSend metode .
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndSend akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSend juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan BeginSendTo. Tidak apa-apa untuk digunakan BeginSendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil BeginSend dengan melakukan panggilan lain ke Connect atau BeginConnect. Dengan protokol tanpa koneksi, Anda juga harus yakin bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan BeginSend akan melempar SocketException.
Jika Anda menentukan DontRoute bendera sebagai socketflags
parameter, data yang Anda kirim tidak akan dirutekan.
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
state
adalah instansiasi dari kelas yang ditentukan pengguna.
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 ditransmisikan, 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.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.
Lihat juga
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Penyusunan Delegasi sebagai Metode Panggilan Balik
- Contoh Soket Klien Asinkron
- Contoh Soket Server Asinkron
Berlaku untuk
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim data secara asinkron ke yang tersambung Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- offset
- Int32
Posisi berbasis nol dalam buffer
parameter untuk mulai mengirim data.
- size
- Int32
Jumlah byte yang akan dikirim.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- callback
- AsyncCallback
Delegasi AsyncCallback .
- state
- Object
Objek yang berisi informasi status untuk permintaan ini.
Mengembalikan
Yang IAsyncResult mereferensikan pengiriman asinkron.
Pengecualian
buffer
adalah null
.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
offset
kurang dari 0.
-atau-
offset
kurang dari buffer
panjang .
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
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.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSend mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSend. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSend metode .
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndSend akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSend juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan BeginSendTo. Tidak apa-apa untuk digunakan BeginSendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil BeginSend dengan melakukan panggilan lain ke Connect atau BeginConnect. Dengan protokol tanpa koneksi, Anda juga harus yakin bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan BeginSend akan melempar SocketException.
Jika Anda menentukan DontRoute bendera sebagai socketflags
parameter, data yang Anda kirim tidak akan dirutekan.
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
state
adalah instansiasi dari kelas yang ditentukan pengguna.
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 ditransmisikan, 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.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.
Lihat juga
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Penyusunan Delegasi sebagai Metode Panggilan Balik
- Contoh Soket Klien Asinkron
- Contoh Soket Server Asinkron
Berlaku untuk
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
- Sumber:
- Socket.cs
Mengirim data secara asinkron ke yang tersambung Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- offset
- Int32
Posisi berbasis nol dalam buffer
parameter untuk mulai mengirim data.
- size
- Int32
Jumlah byte yang akan dikirim.
- socketFlags
- SocketFlags
Kombinasi bitwise dari SocketFlags nilai.
- errorCode
- SocketError
Objek SocketError yang menyimpan kesalahan soket.
- callback
- AsyncCallback
Delegasi AsyncCallback .
- state
- Object
Objek yang berisi informasi status untuk permintaan ini.
Mengembalikan
Yang IAsyncResult mereferensikan pengiriman asinkron.
Pengecualian
buffer
adalah null
.
.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket. Lihat bagian keterangan di bawah ini.
offset
kurang dari 0.
-atau-
offset
kurang dari buffer
panjang .
-atau-
size
kurang dari 0.
-atau-
size
lebih besar dari panjang buffer
dikurangi nilai offset
parameter.
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.
Anda dapat meneruskan panggilan balik yang diterapkan AsyncCallback untuk BeginSend mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginSend. Dalam hal ini, CompletedSynchronously properti pada yang dikembalikan IAsyncResult akan diatur ke true
untuk menunjukkan bahwa metode selesai secara sinkron.
AsyncState Gunakan properti dari IAsyncResult untuk mendapatkan objek status yang diteruskan ke BeginSend metode .
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndSend akan memblokir utas panggilan hingga operasi selesai.
Meskipun ditujukan untuk protokol berorientasi koneksi, BeginSend juga berfungsi untuk protokol tanpa koneksi, asalkan Anda terlebih dahulu Connect memanggil metode atau BeginConnect untuk membuat host jarak jauh default. Jika Anda menggunakan protokol tanpa koneksi dan berencana untuk mengirim data ke beberapa host yang berbeda, Anda harus menggunakan BeginSendTo. Tidak apa-apa untuk digunakan BeginSendTo bahkan setelah Anda menetapkan host jarak jauh default dengan Connect. Anda juga dapat mengubah host jarak jauh default sebelum memanggil BeginSend dengan melakukan panggilan lain ke Connect atau BeginConnect. Dengan protokol tanpa koneksi, Anda juga harus yakin bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan BeginSend akan melempar SocketException.
Jika Anda menentukan DontRoute bendera sebagai socketflags
parameter, data yang Anda kirim tidak akan dirutekan.
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
state
adalah instansiasi dari kelas yang ditentukan pengguna.
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.
Catatan
Konteks eksekusi (konteks keamanan, pengguna yang ditiru, dan konteks panggilan) di-cache untuk metode asinkron Socket . Setelah penggunaan pertama konteks tertentu (metode asinkron Socket tertentu, instans tertentu Socket , dan panggilan balik tertentu), penggunaan konteks tersebut berikutnya akan melihat peningkatan performa.
Lihat juga
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Penyusunan Delegasi sebagai Metode Panggilan Balik
- Contoh Soket Klien Asinkron
- Contoh Soket Server Asinkron