Partager via


Socket.EndReceive Méthode

Définition

Met fin à une lecture asynchrone en attente.

Surcharges

EndReceive(IAsyncResult)

Met fin à une lecture asynchrone en attente.

EndReceive(IAsyncResult, SocketError)

Met fin à une lecture asynchrone en attente.

EndReceive(IAsyncResult)

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

Met fin à 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

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

Retours

Nombre d’octets reçus.

Exceptions

asyncResult a la valeur null.

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

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

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

- ou -

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

.NET Framework, .NET Core et .NET 5-6 uniquement : a Socket é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 un nouveau développement. Utilisez plutôt les Taskéquivalents basés sur .

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

La EndReceive méthode se bloque jusqu’à ce que les données soient disponibles. Si vous utilisez un protocole sans connexion, EndReceive lit 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é 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.

Notes

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

Notes

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

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.

Voir aussi

S’applique à

EndReceive(IAsyncResult, SocketError)

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

Met fin à 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

IAsyncResult qui stocke des 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 d’octets reçus.

Exceptions

asyncResult a la valeur null.

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

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

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

- ou -

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

.NET Framework, .NET Core et .NET 5-6 uniquement : a Socket é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 un nouveau développement. Utilisez plutôt les Taskéquivalents basés sur .

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

La EndReceive méthode se bloque jusqu’à ce que les données soient disponibles. Si vous utilisez un protocole sans connexion, EndReceive lit 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é 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.

Notes

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

Notes

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

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.

Voir aussi

S’applique à