Partager via


Socket.EndReceive Méthode

Définition

Termine une lecture asynchrone en attente.

Surcharges

Nom Description
EndReceive(IAsyncResult)

Termine une lecture asynchrone en attente.

EndReceive(IAsyncResult, SocketError)

Termine une lecture asynchrone en attente.

EndReceive(IAsyncResult)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Termine une lecture asynchrone en attente.

public:
 int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer

Paramètres

asyncResult
IAsyncResult

Qui IAsyncResult stocke les informations d’état et toutes les données définies par l’utilisateur pour cette opération asynchrone.

Retours

Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal. Si zéro octet est demandé, les opérations de réception peuvent se terminer immédiatement ou ne pas se terminer tant qu’au moins un octet n’est pas disponible (mais sans consommer de données).

Exceptions

asyncResult a la valeur null.

asyncResult n’a pas été retourné par un appel à la BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) méthode.

EndReceive(IAsyncResult) a été précédemment appelé pour la lecture asynchrone.

Une erreur s’est produite lors de la tentative d’accès au socket.

- ou -

.NET 7+ uniquement : le Socket fichier a été fermé.

.NET Framework, .NET Core et .NET 5-6 uniquement : le Socket fichier a été fermé.

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. Utilisez plutôt les Taskéquivalents basés sur les valeurs.

EndReceive termine l’opération démarrée par BeginReceive. Vous devez passer la IAsyncResult création par l’appel correspondant BeginReceive .

La EndReceive méthode bloque jusqu’à ce que les données soient disponibles. Si vous utilisez un protocole sans connexion, EndReceive lisez le premier datagramme mis en file d’attente disponible dans la mémoire tampon réseau entrante. Si vous utilisez un protocole orienté connexion, la EndReceive méthode lit autant de données que disponible jusqu’au nombre d’octets que vous avez spécifiés dans le size paramètre de la BeginReceive méthode. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la EndReceive méthode se termine immédiatement et retourne zéro octet.

Note

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

Note

Toutes les E/S lancées par un thread donné sont annulées lorsque ce thread se termine. Une opération asynchrone en attente peut échouer si le thread se termine avant la fin de l’opération.

Note

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

Voir aussi

S’applique à

EndReceive(IAsyncResult, SocketError)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Termine une lecture asynchrone en attente.

public:
 int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer

Paramètres

asyncResult
IAsyncResult

Qui IAsyncResult stocke les informations d’état et toutes les données définies par l’utilisateur pour cette opération asynchrone.

errorCode
SocketError

Objet SocketError qui stocke l’erreur de socket.

Retours

Nombre total d’octets reçus. La méthode retourne zéro (0) uniquement si zéro octets ont été demandés ou si aucun autre octet n’est disponible, car le socket homologue a effectué un arrêt normal. Si zéro octet est demandé, les opérations de réception peuvent se terminer immédiatement ou ne pas se terminer tant qu’au moins un octet n’est pas disponible (mais sans consommer de données).

Exceptions

asyncResult a la valeur null.

asyncResult n’a pas été retourné par un appel à la BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) méthode.

EndReceive(IAsyncResult) a été précédemment appelé pour la lecture asynchrone.

Une erreur s’est produite lors de la tentative d’accès au socket.

- ou -

.NET 7+ uniquement : le Socket fichier a été fermé.

.NET Framework, .NET Core et .NET 5-6 uniquement : le Socket fichier a été fermé.

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. Utilisez plutôt les Taskéquivalents basés sur les valeurs.

EndReceive termine l’opération démarrée par BeginReceive. Vous devez passer la IAsyncResult création par l’appel correspondant BeginReceive .

La EndReceive méthode bloque jusqu’à ce que les données soient disponibles. Si vous utilisez un protocole sans connexion, EndReceive lisez le premier datagramme mis en file d’attente disponible dans la mémoire tampon réseau entrante. Si vous utilisez un protocole orienté connexion, la EndReceive méthode lit autant de données que disponible jusqu’au nombre d’octets que vous avez spécifiés dans le size paramètre de la BeginReceive méthode. Si l’hôte distant arrête la Socket connexion avec la Shutdown méthode et que toutes les données disponibles ont été reçues, la EndReceive méthode se termine immédiatement et retourne zéro octet.

Note

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

Note

Toutes les E/S lancées par un thread donné sont annulées lorsque ce thread se termine. Une opération asynchrone en attente peut échouer si le thread se termine avant la fin de l’opération.

Note

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

Voir aussi

S’applique à