Partager via


Socket.BeginReceiveMessageFrom Méthode

Définition

Démarre la réception asynchrone du nombre spécifié d’octets de données dans l’emplacement spécifié de la mémoire tampon de données, à l’aide du SocketFlags spécifié et stocke le point de terminaison ainsi que les informations sur le paquet.

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

Paramètres

buffer
Byte[]

Tableau de type Byte qui est l'emplacement de stockage pour les données reçues.

offset
Int32

Position de base zéro dans le paramètre buffer à laquelle stocker les données.

size
Int32

Nombre d'octets à recevoir.

socketFlags
SocketFlags

Combinaison d’opérations de bits des valeurs SocketFlags.

remoteEP
EndPoint

Référence à un EndPoint du même type que le point de terminaison de l’hôte distant à mettre à jour lors de la réception synchrone.

callback
AsyncCallback

Délégué AsyncCallback.

state
Object

Objet qui contient les informations d’état de cette demande.

Retours

IAsyncResult qui fait référence à la lecture asynchrone.

Exceptions

buffer a la valeur null.

-ou-

remoteEP a la valeur null.

.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket.

offset est inférieur à 0.

- ou -

offset est supérieur à la longueur de buffer.

- ou -

size est inférieur à 0.

- ou -

size est supérieur à la longueur de buffer moins la valeur du paramètre offset .

Remarques

Important

Il s’agit d’une API de compatibilité. Nous vous déconseillons d’utiliser les méthodes APM (Begin* et End*) pour le nouveau développement. Au lieu de cela, utilisez les Taskéquivalents basés sur la base.

Vous pouvez passer un rappel qui s’implémente AsyncCallbackBeginReceiveMessageFrom à afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel sera exécuté en ligne, pendant l’appel à BeginReceiveMessageFrom. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult sera définie sur pour true indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de IAsyncResult pour obtenir l’objet d’état passé à la BeginReceiveMessageFrom méthode .

L’opération asynchrone BeginReceiveMessageFrom doit être terminée en appelant la EndReceiveMessageFrom méthode . En règle générale, la méthode est appelée par le AsyncCallback délégué. EndReceiveMessageFrom bloque le thread appelant jusqu’à ce que l’opération soit terminée.

Pour annuler un en attente BeginReceiveMessageFrom, appelez la Close méthode .

Cette méthode lit les données dans le buffer paramètre et capture le point de terminaison de l’hôte distant à partir duquel les données sont envoyées, ainsi que des informations sur le paquet reçu. Pour plus d’informations sur la façon de récupérer ce point de terminaison, reportez-vous à EndReceiveMessageFrom. Cette méthode est particulièrement utile si vous envisagez de recevoir de manière asynchrone des datagrammes sans connexion à partir d’un hôte inconnu ou de plusieurs hôtes.

Notes

Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique.

Notes

Ce membre génère des informations de traçage lorsque vous activez le traçage réseau dans votre application. Pour plus d’informations, consultez Suivi réseau dans .NET Framework.

Notes

Le contexte d’exécution (le contexte de sécurité, l’utilisateur usurpé et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, un instance spécifique Socket et un rappel spécifique), les utilisations ultérieures de ce contexte voient une amélioration des performances.

S’applique à