Share via


Socket.SendToAsync Metode

Definisi

Overload

SendToAsync(SocketAsyncEventArgs)

Mengirim data secara asinkron ke host jarak jauh tertentu.

SendToAsync(ArraySegment<Byte>, EndPoint)

Mengirim data ke host jarak jauh yang ditentukan.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Mengirim data ke host jarak jauh yang ditentukan.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

Mengirim data ke host jarak jauh yang ditentukan.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Mengirim data ke host jarak jauh yang ditentukan.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

Mengirim data ke titik akhir tertentu menggunakan SocketFlags.

SendToAsync(SocketAsyncEventArgs)

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

Mengirim data secara asinkron ke host jarak jauh tertentu.

public:
 bool SendToAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendToAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendToAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendToAsync (e As SocketAsyncEventArgs) As Boolean

Parameter

e
SocketAsyncEventArgs

Objek SocketAsyncEventArgs yang digunakan untuk operasi soket asinkron ini.

Mengembalikan

true jika operasi I/O tertunda. Peristiwa Completed pada e parameter akan dinaikkan setelah menyelesaikan operasi.

false jika operasi I/O selesai secara sinkron. Dalam hal ini, Peristiwa Completed pada e parameter tidak akan dinaikkan dan e objek yang diteruskan sebagai parameter dapat diperiksa segera setelah panggilan metode kembali untuk mengambil hasil operasi.

Pengecualian

Operasi soket sudah berlangsung menggunakan SocketAsyncEventArgs objek yang ditentukan dalam e parameter .

Protokol yang ditentukan berorientasi pada koneksi, tetapi Socket belum tersambung.

Keterangan

Metode memulai SendToAsync operasi pengiriman asinkron ke host jarak jauh yang ditentukan dalam SocketAsyncEventArgs.RemoteEndPoint properti e parameter . Memanggil SendToAsync metode memberi Anda kemampuan untuk mengirim data dalam utas eksekusi terpisah. Meskipun metode ini ditujukan untuk protokol tanpa koneksi, SendToAsync bekerja dengan protokol tanpa koneksi dan berorientasi koneksi.

Untuk diberi tahu tentang penyelesaian, Anda harus membuat metode panggilan balik yang mengimplementasikan delegasi EventHandler<SocketAsyncEventArgs> dan melampirkan panggilan balik ke SocketAsyncEventArgs.Completed peristiwa.

Properti dan peristiwa berikut pada System.Net.Sockets.SocketAsyncEventArgs objek diperlukan agar berhasil memanggil metode ini:

Penelepon dapat mengatur SocketAsyncEventArgs.UserToken properti ke objek status pengguna apa pun yang diinginkan sebelum memanggil SendToAsync metode , sehingga informasi akan dapat diambil dalam metode panggilan balik. Jika panggilan balik membutuhkan lebih banyak informasi daripada satu objek, kelas kecil dapat dibuat untuk menyimpan informasi status lain yang diperlukan sebagai anggota.

Jika Anda menggunakan protokol berorientasi koneksi, Anda harus terlebih dahulu memanggil Acceptmetode , , AcceptAsync, BeginAcceptBeginConnect, Connectatau ConnectAsync . Jika tidak SendToAsync , akan melempar SocketException. Saat menggunakan protokol berorientasi koneksi, SendToAsync metode akan mengabaikan SocketAsyncEventArgs.RemoteEndPoint properti dan mengirim data ke System.Net.EndPoint yang ditetapkan dalam Acceptmetode , , AcceptAsyncBeginAccept, BeginConnectConnect, atau ConnectAsync .

Jika Anda menggunakan protokol tanpa koneksi, Anda tidak perlu membuat host jarak jauh default dengan BeginConnectmetode , Connect, atau ConnectAsync sebelum memanggil SendToAsync. Anda hanya perlu melakukan ini jika Anda berniat untuk memanggil BeginSend metode atau SendAsync . Jika Anda memanggil BeginConnectmetode , Connect, atau ConnectAsync sebelum memanggil SendToAsync, SocketAsyncEventArgs.RemoteEndPoint properti akan mengambil alih host jarak jauh default yang ditentukan hanya untuk operasi pengiriman tersebut. Anda juga tidak diharuskan untuk memanggil Bind metode . Dalam hal ini, penyedia layanan yang mendasar akan menetapkan alamat IP jaringan lokal dan nomor port yang paling tepat. Gunakan nomor port nol jika Anda ingin penyedia layanan yang mendasar memilih port gratis. Jika Anda perlu mengidentifikasi alamat IP jaringan lokal dan nomor port yang ditetapkan, Anda dapat menggunakan LocalEndPoint properti setelah SocketAsyncEventArgs.Completed peristiwa disinyalkan dan delegasi terkait dipanggil.

Jika Anda ingin mengirim data ke alamat siaran, Anda harus terlebih dahulu memanggil SetSocketOption metode dan mengatur opsi soket ke SocketOptionName.Broadcast true. Anda juga harus yakin bahwa ukuran buffer Anda tidak melebihi ukuran paket maksimum penyedia layanan yang mendasar. Jika ya, datagram tidak akan dikirim dan SendToAsync akan melempar SocketException.

Jika Anda menentukan bendera DontRoute di SocketAsyncEventArgs.SocketFlags properti , data yang Anda kirim tidak akan dirutekan.

Untuk soket berorientasi pesan, perawatan harus dilakukan agar tidak melebihi ukuran pesan maksimum dari transportasi yang mendasar. Jika ukuran buffer melebihi ukuran paket maksimum penyedia layanan yang mendasar, datagram tidak dikirim dan SendToAsync akan melempar SocketException. Keberhasilan penyelesaian SendToAsync metode tidak menunjukkan bahwa data berhasil dikirimkan.

Lihat juga

Berlaku untuk

SendToAsync(ArraySegment<Byte>, EndPoint)

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

Mengirim data ke host jarak jauh yang ditentukan.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), remoteEP As EndPoint) As Task(Of Integer)

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang akan dikirim.

remoteEP
EndPoint

Host jarak jauh untuk mengirim data.

Mengembalikan

Tugas asinkron yang selesai dengan jumlah byte yang dikirim.

Pengecualian

remoteEPadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Berlaku untuk

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Mengirim data ke host jarak jauh yang ditentukan.

public:
 System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) As Task(Of Integer)

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai SocketFlags yang akan digunakan saat mengirim data.

remoteEP
EndPoint

Host jarak jauh untuk mengirim data.

Mengembalikan

Tugas asinkron yang selesai dengan jumlah byte yang dikirim.

Pengecualian

remoteEPadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Berlaku untuk

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

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

Mengirim data ke host jarak jauh yang ditentukan.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
ReadOnlyMemory<Byte>

Buffer untuk data yang akan dikirim.

remoteEP
EndPoint

Host jarak jauh untuk mengirim data.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.

Mengembalikan

Tugas asinkron yang selesai dengan jumlah byte yang dikirim.

Pengecualian

remoteEPadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Mengirim data ke host jarak jauh yang ditentukan.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
ReadOnlyMemory<Byte>

Buffer untuk data yang akan dikirim.

socketFlags
SocketFlags

Kombinasi bitwise dari nilai SocketFlags yang akan digunakan saat mengirim data.

remoteEP
EndPoint

Host jarak jauh untuk mengirim data.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.

Mengembalikan

Tugas asinkron yang selesai dengan jumlah byte yang dikirim.

Pengecualian

remoteEPadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

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

Mengirim data ke titik akhir tertentu menggunakan SocketFlags.

public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parameter

buffer
ReadOnlyMemory<Byte>

Buffer untuk data yang akan dikirim.

socketFlags
SocketFlags

Kombinasi SocketFlags nilai bitwise yang akan digunakan saat mengirim data.

socketAddress
SocketAddress

SocketAddress yang mewakili tujuan untuk data.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk membatalkan operasi asinkron.

Mengembalikan

Tugas asinkron yang selesai dengan jumlah byte yang dikirim.

Pengecualian

socketAddressadalah null.

Terjadi kesalahan saat mencoba mengakses soket.

Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.

Berlaku untuk