Bagikan melalui


Socket.BeginReceiveMessageFrom Metode

Definisi

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

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

buffer
Byte[]

Array jenis Byte yang merupakan lokasi penyimpanan untuk data yang diterima.

offset
Int32

Posisi berbasis nol dalam buffer parameter untuk menyimpan data.

size
Int32

Jumlah byte yang akan diterima.

socketFlags
SocketFlags

Kombinasi bitwise dari SocketFlags nilai.

remoteEP
EndPoint

Referensi ke EndPoint jenis yang sama dengan titik akhir host jarak jauh yang akan diperbarui pada penerimaan sinkron.

callback
AsyncCallback

Delegasi AsyncCallback .

state
Object

Objek yang berisi informasi status untuk permintaan ini.

Mengembalikan

Yang IAsyncResult mereferensikan pembacaan asinkron.

Pengecualian

bufferadalah null.

-atau-

remoteEPadalah null.

.NET Framework dan .NET 5 dan yang lebih lama saja: Terjadi kesalahan saat mencoba mengakses soket.

offset kurang dari 0.

-atau-

offset lebih besar dari panjang buffer.

-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 BeginReceiveMessageFrom mendapatkan pemberitahuan tentang penyelesaian operasi. Perhatikan bahwa jika tumpukan jaringan yang mendasar menyelesaikan operasi secara sinkron, panggilan balik akan dijalankan sebaris, selama panggilan ke BeginReceiveMessageFrom. 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 BeginReceiveMessageFrom metode .

Operasi asinkron BeginReceiveMessageFrom harus diselesaikan dengan memanggil EndReceiveMessageFrom metode . Biasanya, metode ini dipanggil oleh AsyncCallback delegasi. EndReceiveMessageFrom akan memblokir utas panggilan hingga operasi selesai.

Untuk membatalkan tertunda BeginReceiveMessageFrom, panggil Close metode .

Metode ini membaca data ke dalam buffer parameter, dan menangkap titik akhir host jarak jauh tempat data dikirim, serta informasi tentang paket yang diterima. Untuk informasi tentang cara mengambil titik akhir ini, lihat EndReceiveMessageFrom. Metode ini paling berguna jika Anda berniat untuk menerima datagram tanpa koneksi secara asinkron dari host yang tidak diketahui atau beberapa host.

Catatan

Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu.

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.

Berlaku untuk