Socket.SendToAsync 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.
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
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
Tidak RemoteEndPoint boleh nihil.
Operasi soket sudah berlangsung menggunakan SocketAsyncEventArgs objek yang ditentukan dalam e
parameter .
Socket Telah ditutup.
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
remoteEP
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
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
remoteEP
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
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
remoteEP
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
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
remoteEP
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
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
socketAddress
adalah null
.
Terjadi kesalahan saat mencoba mengakses soket.
Socket Telah ditutup.
Token pembatalan dibatalkan. Pengecualian ini disimpan ke dalam tugas yang dikembalikan.