Socket.EndSend 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.
Met fin à un envoi asynchrone en attente.
Surcharges
EndSend(IAsyncResult) |
Met fin à un envoi asynchrone en attente. |
EndSend(IAsyncResult, SocketError) |
Met fin à un envoi asynchrone en attente. |
EndSend(IAsyncResult)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Met fin à un envoi asynchrone en attente.
public:
int EndSend(IAsyncResult ^ asyncResult);
public int EndSend (IAsyncResult asyncResult);
member this.EndSend : IAsyncResult -> int
Public Function EndSend (asyncResult As IAsyncResult) As Integer
Paramètres
- asyncResult
- IAsyncResult
IAsyncResult stockant les informations d'état de cette demande asynchrone.
Retours
En cas de réussite, nombre d'octets envoyés à Socket ; sinon, erreur de Socket non valide.
Exceptions
asyncResult
a la valeur null
.
asyncResult
n'a pas été retourné par un appel à la méthode BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).
EndSend(IAsyncResult) a été précédemment appelé pour l'envoi 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 .
EndSend termine l’opération démarrée par BeginSend. Vous devez passer le IAsyncResult créé par l’appel correspondant BeginSend .
Si vous utilisez un protocole sans connexion, EndSend se bloque jusqu’à ce que le datagramme soit envoyé. Si vous utilisez un protocole orienté connexion, EndSend se bloque jusqu’à ce qu’une partie de la mémoire tampon ait été envoyée. Si la valeur de retour de EndSend indique que la mémoire tampon n’a pas été complètement envoyée, appelez à nouveau la BeginSend méthode, en modifiant la mémoire tampon pour qu’elle contienne les données non envoyées.
Il n’existe aucune garantie que les données que vous envoyez s’affichent immédiatement sur le réseau. Pour augmenter l’efficacité du réseau, le système sous-jacent peut retarder la transmission jusqu’à ce qu’une quantité importante de données sortantes soit collectée. Une exécution réussie de la BeginSend méthode signifie que le système sous-jacent a eu de l’espace pour mettre en mémoire tampon vos données pour un envoi réseau.
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
La réussite d’un envoi n’indique pas que les données ont été correctement remises. Si aucun espace de mémoire tampon n’est disponible dans le système de transport pour contenir les données à transmettre, l’envoi se bloque, sauf si le socket a été placé en mode non bloquant.
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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
S’applique à
EndSend(IAsyncResult, SocketError)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Met fin à un envoi asynchrone en attente.
public:
int EndSend(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndSend (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndSend : IAsyncResult * SocketError -> int
Public Function EndSend (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer
Paramètres
- asyncResult
- IAsyncResult
IAsyncResult stockant les informations d'état de cette demande asynchrone.
- errorCode
- SocketError
Objet SocketError qui stocke l'erreur de socket.
Retours
En cas de réussite, nombre d'octets envoyés à Socket ; sinon, erreur de Socket non valide.
Exceptions
asyncResult
a la valeur null
.
asyncResult
n'a pas été retourné par un appel à la méthode BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).
EndSend(IAsyncResult) a été précédemment appelé pour l'envoi 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 .
EndSend termine l’opération démarrée par BeginSend. Vous devez passer le IAsyncResult créé par l’appel correspondant BeginSend .
Si vous utilisez un protocole sans connexion, EndSend se bloque jusqu’à ce que le datagramme soit envoyé. Si vous utilisez un protocole orienté connexion, EndSend se bloque jusqu’à ce qu’une partie de la mémoire tampon ait été envoyée. Si la valeur de retour de EndSend indique que la mémoire tampon n’a pas été complètement envoyée, appelez à nouveau la BeginSend méthode, en modifiant la mémoire tampon pour qu’elle contienne les données non envoyées.
Il n’existe aucune garantie que les données que vous envoyez s’affichent immédiatement sur le réseau. Pour augmenter l’efficacité du réseau, le système sous-jacent peut retarder la transmission jusqu’à ce qu’une quantité importante de données sortantes soit collectée. Une exécution réussie de la BeginSend méthode signifie que le système sous-jacent a eu de l’espace pour mettre en mémoire tampon vos données pour un envoi réseau.
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
La réussite d’un envoi n’indique pas que les données ont été correctement remises. Si aucun espace de mémoire tampon n’est disponible dans le système de transport pour contenir les données à transmettre, l’envoi se bloque, sauf si le socket a été placé en mode non bloquant.
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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay