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
| Nom | Description |
|---|---|
| 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
- 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
Qui IAsyncResult stocke les informations d’état pour cette opération asynchrone.
Retours
En cas de réussite, le nombre d’octets envoyés au Socket; sinon, une erreur non valide Socket .
Exceptions
asyncResult a la valeur null.
asyncResult n’a pas été retourné par un appel à la BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) méthode.
EndSend(IAsyncResult) a été précédemment appelé pour l’envoi 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.
EndSend termine l’opération démarrée par BeginSend. Vous devez passer la IAsyncResult création par l’appel correspondant BeginSend .
Si vous utilisez un protocole sans connexion, EndSend bloque jusqu’à ce que le datagramme soit envoyé. Si vous utilisez un protocole orienté connexion, EndSend bloque jusqu’à ce que certaines mémoires tampons aient été envoyées. Si la valeur de EndSend retour indique que la mémoire tampon n’a pas été entièrement envoyée, appelez à nouveau la BeginSend méthode, en modifiant la mémoire tampon pour contenir 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é significative de données sortantes soit collectée. Une réussite de la méthode signifie que le système sous-jacent a eu de la BeginSend place pour mettre en mémoire tampon vos données pour un envoi réseau.
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
La réussite d’un envoi n’indique pas que les données ont été correctement livrées. Si aucun espace tampon n’est disponible dans le système de transport pour contenir les données à transmettre, l’envoi bloque à moins que le socket n’ait été placé en mode non bloquant.
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
- 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
- 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
Qui IAsyncResult stocke les informations d’état pour cette opération asynchrone.
- errorCode
- SocketError
Objet SocketError qui stocke l’erreur de socket.
Retours
En cas de réussite, le nombre d’octets envoyés au Socket; sinon, une erreur non valide Socket .
Exceptions
asyncResult a la valeur null.
asyncResult n’a pas été retourné par un appel à la BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) méthode.
EndSend(IAsyncResult) a été précédemment appelé pour l’envoi 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.
EndSend termine l’opération démarrée par BeginSend. Vous devez passer la IAsyncResult création par l’appel correspondant BeginSend .
Si vous utilisez un protocole sans connexion, EndSend bloque jusqu’à ce que le datagramme soit envoyé. Si vous utilisez un protocole orienté connexion, EndSend bloque jusqu’à ce que certaines mémoires tampons aient été envoyées. Si la valeur de EndSend retour indique que la mémoire tampon n’a pas été entièrement envoyée, appelez à nouveau la BeginSend méthode, en modifiant la mémoire tampon pour contenir 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é significative de données sortantes soit collectée. Une réussite de la méthode signifie que le système sous-jacent a eu de la BeginSend place pour mettre en mémoire tampon vos données pour un envoi réseau.
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
La réussite d’un envoi n’indique pas que les données ont été correctement livrées. Si aucun espace tampon n’est disponible dans le système de transport pour contenir les données à transmettre, l’envoi bloque à moins que le socket n’ait été placé en mode non bloquant.
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
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay