Bagikan melalui


Socket.ReceiveMessageFromAsync Metode

Definisi

Overload

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Mulai menerima jumlah byte data yang ditentukan secara asinkron ke lokasi yang ditentukan dalam buffer data, menggunakan SocketFlags, dan menyimpan titik akhir dan informasi paket.

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

Mulai menerima jumlah byte data yang ditentukan secara asinkron ke lokasi yang ditentukan dalam buffer data, menggunakan SocketFlags, dan menyimpan titik akhir dan informasi paket.

public:
 bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (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

Terjadi kesalahan saat mencoba mengakses soket.

Keterangan

Metode ReceiveMessageFromAsync ini digunakan terutama untuk menerima data pesan pada soket tanpa koneksi. Alamat lokal soket harus diketahui. Metode ini hanya dapat digunakan dengan datagram dan soket mentah. Soket harus diinisialisasi dengan jenis soket yang diatur ke Dgram atau Raw sebelum memanggil metode ini. Ini dapat dilakukan ketika soket dibangun menggunakan Socket.

Pemanggil harus mengatur SocketAsyncEventArgs.RemoteEndPoint properti ke EndPoint jenis yang sama dengan titik akhir host jarak jauh. Properti akan diperbarui saat berhasil menerima ke titik akhir jarak jauh aktual.

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

Pemanggil dapat mengatur SocketAsyncEventArgs.UserToken properti ke objek status pengguna apa pun yang diinginkan sebelum memanggil ReceiveMessageFromAsync 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.

Untuk soket berorientasi pesan, pesan masuk ditempatkan ke dalam buffer hingga ukuran total buffer. Properti SocketAsyncEventArgs.Count dan SocketAsyncEventArgs.Offset menentukan di mana dalam buffer data ditempatkan dan jumlah data.

Metode ini ReceiveMessageFromAsync secara otomatis mengatur PacketInformation opsi soket ke true pertama kalinya dipanggil untuk diberikan Socket. Namun, IPPacketInformation objek hanya akan berlaku untuk paket yang tiba di komputer lokal setelah opsi soket diatur. Jika soket dikirim paket antara ketika soket terikat ke titik akhir lokal (secara eksplisit oleh Bind metode atau secara implisit oleh salah Connectsatu metode , , ConnectAsyncSendTo, atau SendToAsync ) dan panggilan pertama ke ReceiveMessageFromAsync metode , panggilan ke ReceiveMessageFromAsync metode akan menghasilkan objek yang tidak valid IPPacketInformation untuk paket ini.

Untuk memastikan bahwa semua IPPacketInformation objek valid, aplikasi harus mengatur PacketInformation opsi soket ketrue sebelum terikat ke titik akhir lokal menggunakan SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metode .

Aplikasi dapat memeriksa objek yang IPPacketInformation dihasilkan jika perlu mengetahui apakah datagram dikirim menggunakan alamat unicast, multicast, atau siaran.

Lihat juga

Berlaku untuk

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

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

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang diterima.

remoteEndPoint
EndPoint

Titik akhir dengan jenis yang sama dengan titik akhir host jarak jauh.

Mengembalikan

Tugas asinkron yang selesai dengan SocketReceiveMessageFromResult berisi jumlah byte yang diterima dan informasi tambahan tentang host pengirim.

Pengecualian

Objek Socket telah ditutup.

remoteEndPointadalah null.

Anda harus memanggil metode Ikat sebelum melakukan operasi ini.

Berlaku untuk

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

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

Parameter

buffer
ArraySegment<Byte>

Buffer untuk data yang diterima.

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

Titik akhir dengan jenis yang sama dengan titik akhir host jarak jauh.

Mengembalikan

Tugas asinkron yang selesai dengan SocketReceiveMessageFromResult berisi jumlah byte yang diterima dan informasi tambahan tentang host pengirim.

Pengecualian

Objek Socket telah ditutup.

remoteEndPointadalah null.

Anda harus memanggil metode Ikat sebelum melakukan operasi ini.

Berlaku untuk

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parameter

buffer
Memory<Byte>

Buffer untuk data yang diterima.

remoteEndPoint
EndPoint

Titik akhir dengan jenis yang sama dengan titik akhir host jarak jauh.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk memberi sinyal operasi asinkron harus dibatalkan.

Mengembalikan

Tugas asinkron yang selesai dengan SocketReceiveMessageFromResult berisi jumlah byte yang diterima dan informasi tambahan tentang host pengirim.

Pengecualian

Objek Socket telah ditutup.

remoteEndPointadalah null.

Anda harus memanggil metode Ikat sebelum melakukan operasi ini.

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

Berlaku untuk

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

Menerima data dan mengembalikan informasi tambahan tentang pengirim pesan.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

Parameter

buffer
Memory<Byte>

Buffer untuk data yang diterima.

socketFlags
SocketFlags

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

remoteEndPoint
EndPoint

Titik akhir dengan jenis yang sama dengan titik akhir host jarak jauh.

cancellationToken
CancellationToken

Token pembatalan yang dapat digunakan untuk memberi sinyal operasi asinkron harus dibatalkan.

Mengembalikan

Tugas asinkron yang selesai dengan SocketReceiveMessageFromResult berisi jumlah byte yang diterima dan informasi tambahan tentang host pengirim.

Pengecualian

Objek Socket telah ditutup.

remoteEndPointadalah null.

Anda harus memanggil metode Ikat sebelum melakukan operasi ini.

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

Berlaku untuk