Share via


Socket.BeginSend Metode

Definisi

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

buffersadalah 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.

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

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

buffersadalah 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.

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

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

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

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

bufferadalah 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 bufferpanjang .

-atau-

size kurang dari 0.

-atau-

size lebih besar dari panjang buffer dikurangi nilai offset parameter.

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

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

buffer
Byte[]

Array jenis Byte yang berisi data yang akan dikirim.

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

bufferadalah 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 bufferpanjang .

-atau-

size kurang dari 0.

-atau-

size lebih besar dari panjang buffer dikurangi nilai offset parameter.

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

Berlaku untuk