Socket.ReceiveAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
ReceiveAsync(ArraySegment<Byte>) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(IList<ArraySegment<Byte>>) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(SocketAsyncEventArgs) |
Démarre une demande asynchrone pour recevoir les données d'un objet Socket connecté. |
ReceiveAsync(ArraySegment<Byte>, SocketFlags) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(Memory<Byte>, CancellationToken) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken) |
Reçoit des données à partir d’un socket connecté. |
ReceiveAsync(ArraySegment<Byte>)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)
Paramètres
- buffer
- ArraySegment<Byte>
Mémoire tampon pour les données reçues.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
S’applique à
ReceiveAsync(IList<ArraySegment<Byte>>)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Liste des mémoires tampons pour les données reçues.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Le paramètre buffers
était null.
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
Remarques
Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par Receive(IList<ArraySegment<Byte>>).
S’applique à
ReceiveAsync(SocketAsyncEventArgs)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Démarre une demande asynchrone pour recevoir les données d'un objet Socket connecté.
public:
bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean
Paramètres
Objet SocketAsyncEventArgs à utiliser pour cette opération de socket asynchrone.
Retours
true
si l’opération d’E/S est en attente. L'événement Completed sur le paramètre e
sera déclenché une fois l'opération terminée.
false
si l’opération d’E/S a été terminée de manière synchrone. Dans ce cas, l'événement Completed sur le paramètre e
ne sera pas déclenché et l'objet e
transmis en tant que paramètre peut être examiné immédiatement après que l'appel de méthode a été retourné pour extraire le résultat de l'opération.
Exceptions
Un argument n'était pas valide. La propriété Buffer ou BufferList sur le paramètre de e
doit référencer des mémoires tampon valides. L'une ou l'autre de ces propriétés peut être définie, mais pas les deux à la fois.
Une opération de socket utilisant l'objet SocketAsyncEventArgs spécifié dans le paramètre e
spécifié était déjà en cours.
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
Remarques
La ReceiveAsync méthode est utilisée sur les sockets connectés ou les sockets sans connexion liés et est utilisée pour lire les données entrantes. L’adresse locale du socket doit être connue.
Pour les sockets sans connexion liés, cette fonction limite les adresses à partir desquelles les messages reçus sont acceptés. La fonction retourne uniquement les messages de l’adresse distante spécifiée dans la connexion. Les messages provenant d’autres adresses sont ignorés en mode silencieux.
La SocketAsyncEventArgs.SocketFlags propriété sur le e
paramètre fournit au fournisseur de services Windows Sockets des informations supplémentaires sur la demande de lecture. Pour plus d’informations sur l’utilisation de ce paramètre, consultez System.Net.Sockets.SocketFlags.
Les propriétés et événements suivants sur l’objet System.Net.Sockets.SocketAsyncEventArgs sont nécessaires pour appeler cette méthode :
SocketAsyncEventArgs.Buffer ou SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count si SocketAsyncEventArgs.Buffer est défini
SocketAsyncEventArgs.Offset si SocketAsyncEventArgs.Buffer est défini
L’appelant peut définir la SocketAsyncEventArgs.UserToken propriété sur n’importe quel objet d’état utilisateur souhaité avant d’appeler la ReceiveAsync méthode, afin que les informations soient récupérables dans la méthode de rappel. Si le rappel a besoin de plus d’informations qu’un seul objet, une petite classe peut être créée pour contenir les autres informations d’état requises en tant que membres.
Pour les sockets de type flux d’octets, les données entrantes sont placées dans la mémoire tampon jusqu’à ce que la mémoire tampon soit remplie, que la connexion soit fermée ou que les données mises en mémoire tampon interne soient épuisées.
Pour les sockets orientés message, un message entrant est placé dans la mémoire tampon jusqu’à la taille totale de la mémoire tampon associée au e
paramètre. Si le message est plus grand que la mémoire tampon, la mémoire tampon est remplie avec la première partie du message.
Pour les sockets orientés connexion, la ReceiveAsync méthode peut indiquer l’arrêt gracieux du circuit virtuel de l’une des deux manières qui varient selon qu’il s’agit d’un flux d’octets ou d’un message. Pour les flux d’octets, zéro octet ayant été lu indique une fermeture normale et qu’aucun autre octet ne sera jamais lu. Pour les sockets orientés message, où un message de zéro octet est souvent autorisé, un SocketException avec le SocketAsyncEventArgs.SocketError paramètre défini sur le code d’erreur WSAEDISCON natif winsock (10101) est utilisé pour indiquer une fermeture normale. Dans tous les cas, un SocketException avec le SocketAsyncEventArgs.SocketError défini sur le code d’erreur Winsock WSAECONNRESET natif (10054) indique qu’une fermeture avortée s’est produite.
Voir aussi
S’applique à
ReceiveAsync(ArraySegment<Byte>, SocketFlags)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)
Paramètres
- buffer
- ArraySegment<Byte>
Mémoire tampon pour les données reçues.
- socketFlags
- SocketFlags
Combinaison de valeurs SocketFlags au niveau du bit qui seront utilisées lors de la réception des données.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
S’applique à
ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public:
System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Liste des mémoires tampons pour les données reçues.
- socketFlags
- SocketFlags
Combinaison de valeurs SocketFlags au niveau du bit qui seront utilisées lors de la réception des données.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Le paramètre buffers
était null.
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
Remarques
Cette méthode stocke dans la tâche toutes les exceptions de non-utilisation que l’équivalent synchrone de la méthode peut lever. Si une exception est stockée dans la tâche retournée, cette exception sera levée lorsque la tâche est attendue. Les exceptions d’utilisation, telles que ArgumentException, sont toujours levées de manière synchrone. Pour connaître les exceptions stockées, consultez les exceptions levées par Receive(IList<ArraySegment<Byte>>, SocketFlags).
S’applique à
ReceiveAsync(Memory<Byte>, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Paramètres
- cancellationToken
- CancellationToken
Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.
S’applique à
ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Reçoit des données à partir d’un socket connecté.
public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Paramètres
- socketFlags
- SocketFlags
Combinaison de valeurs SocketFlags au niveau du bit qui seront utilisées lors de la réception des données.
- cancellationToken
- CancellationToken
Jeton d’annulation qui peut être utilisé pour annuler l’opération asynchrone.
Retours
Tâche asynchrone qui se termine avec le nombre d’octets reçus.
Exceptions
Socket a été fermé.
Une erreur s’est produite pendant la tentative d’accès au socket.
Le jeton d’annulation a été annulé. Cette exception est stockée dans la tâche retournée.