Socket.BeginSend 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.
Envoie des données de façon asynchrone à un Socket connecté.
Surcharges
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Envoie des données de façon asynchrone à un Socket connecté. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Envoie des données de façon asynchrone à un Socket connecté. |
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Envoie des données de façon asynchrone à un Socket connecté. |
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Envoie des données de façon asynchrone à un Socket connecté. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie des données de façon asynchrone à un Socket connecté.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Tableau de type Byte qui contient les données à envoyer.
- socketFlags
- SocketFlags
Combinaison d’opérations de bits des valeurs SocketFlags.
- callback
- AsyncCallback
Délégué AsyncCallback.
- state
- Object
Objet qui contient les informations d’état de cette demande.
Retours
IAsyncResult qui fait référence à l'envoi asynchrone.
Exceptions
buffers
a la valeur null
.
buffers
est vide.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section Notes ci-dessous.
Socket 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 un nouveau développement. Utilisez plutôt les Task
équivalents basés sur .
Vous pouvez passer un rappel qui implémente AsyncCallback sur BeginSend afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel est exécuté inline, pendant l’appel à BeginSend. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult est définie true
sur pour indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de pour IAsyncResult obtenir l’objet d’état passé à la BeginSend méthode .
L’opération asynchrone BeginSend doit être effectuée en appelant la EndSend méthode . En règle générale, la méthode est appelée par le AsyncCallback délégué. EndSend bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que destiné aux protocoles orientés connexion, BeginSend fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect pour établir un hôte distant par défaut. Si vous utilisez un protocole sans connexion et que vous envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser BeginSendTo. Il est possible d’utiliser BeginSendTo même après avoir établi un hôte distant par défaut avec Connect. Vous pouvez également modifier l’hôte distant par défaut avant d’appeler BeginSend en effectuant un autre appel à Connect ou BeginConnect. Avec les protocoles sans connexion, vous devez également vous assurer que la taille de votre mémoire tampon ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et BeginSend lèvera un SocketException.
Si vous spécifiez l’indicateur DontRoute comme socketflags
paramètre, les données que vous envoyez ne seront pas routées.
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
state
est une instanciation d’une classe définie par l’utilisateur.
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.
Notes
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunté et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, un instance spécifique Socket et un rappel spécifique), les utilisations suivantes de ce contexte voient une amélioration des performances.
Voir aussi
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling d'un délégué comme méthode de rappel
- Exemple de socket client asynchrone
- Exemple de sockets serveur asynchrones
S’applique à
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie des données de façon asynchrone à un Socket connecté.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- buffers
- IList<ArraySegment<Byte>>
Tableau de type Byte qui contient les données à envoyer.
- socketFlags
- SocketFlags
Combinaison d’opérations de bits des valeurs SocketFlags.
- errorCode
- SocketError
Objet SocketError qui stocke l'erreur de socket.
- callback
- AsyncCallback
Délégué AsyncCallback.
- state
- Object
Objet qui contient les informations d’état de cette demande.
Retours
IAsyncResult qui fait référence à l'envoi asynchrone.
Exceptions
buffers
a la valeur null
.
buffers
est vide.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section Notes ci-dessous.
Socket 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 un nouveau développement. Utilisez plutôt les Task
équivalents basés sur .
Vous pouvez passer un rappel qui implémente AsyncCallback sur BeginSend afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel est exécuté inline, pendant l’appel à BeginSend. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult est définie true
sur pour indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de pour IAsyncResult obtenir l’objet d’état passé à la BeginSend méthode .
L’opération asynchrone BeginSend doit être effectuée en appelant la EndSend méthode . En règle générale, la méthode est appelée par le AsyncCallback délégué. EndSend bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que destiné aux protocoles orientés connexion, BeginSend fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect pour établir un hôte distant par défaut. Si vous utilisez un protocole sans connexion et que vous envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser BeginSendTo. Il est possible d’utiliser BeginSendTo même après avoir établi un hôte distant par défaut avec Connect. Vous pouvez également modifier l’hôte distant par défaut avant d’appeler BeginSend en effectuant un autre appel à Connect ou BeginConnect. Avec les protocoles sans connexion, vous devez également vous assurer que la taille de votre mémoire tampon ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et BeginSend lèvera un SocketException.
Si vous spécifiez l’indicateur DontRoute comme socketflags
paramètre, les données que vous envoyez ne seront pas routées.
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
state
est une instanciation d’une classe définie par l’utilisateur.
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.
Notes
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunté et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, un instance spécifique Socket et un rappel spécifique), les utilisations suivantes de ce contexte voient une amélioration des performances.
Voir aussi
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling d'un délégué comme méthode de rappel
- Exemple de socket client asynchrone
- Exemple de sockets serveur asynchrones
S’applique à
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie des données de façon asynchrone à un Socket connecté.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- offset
- Int32
Position de base zéro dans le paramètre buffer
à laquelle commencer l'envoi des données.
- size
- Int32
Le nombre d’octets à envoyer.
- socketFlags
- SocketFlags
Combinaison d’opérations de bits des valeurs SocketFlags.
- callback
- AsyncCallback
Délégué AsyncCallback.
- state
- Object
Objet qui contient les informations d’état de cette demande.
Retours
IAsyncResult qui fait référence à l'envoi asynchrone.
Exceptions
buffer
a la valeur null
.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section Notes ci-dessous.
offset
est inférieur à 0.
- ou -
offset
est inférieur à la longueur de buffer
.
- ou -
size
est inférieur à 0.
- ou -
size
est supérieur à la longueur de buffer
moins la valeur du paramètre offset
.
Socket 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 un nouveau développement. Utilisez plutôt les Task
équivalents basés sur .
Vous pouvez passer un rappel qui implémente AsyncCallback sur BeginSend afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel est exécuté inline, pendant l’appel à BeginSend. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult est définie true
sur pour indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de pour IAsyncResult obtenir l’objet d’état passé à la BeginSend méthode .
L’opération asynchrone BeginSend doit être effectuée en appelant la EndSend méthode . En règle générale, la méthode est appelée par le AsyncCallback délégué. EndSend bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que destiné aux protocoles orientés connexion, BeginSend fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect pour établir un hôte distant par défaut. Si vous utilisez un protocole sans connexion et que vous envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser BeginSendTo. Il est possible d’utiliser BeginSendTo même après avoir établi un hôte distant par défaut avec Connect. Vous pouvez également modifier l’hôte distant par défaut avant d’appeler BeginSend en effectuant un autre appel à Connect ou BeginConnect. Avec les protocoles sans connexion, vous devez également vous assurer que la taille de votre mémoire tampon ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et BeginSend lèvera un SocketException.
Si vous spécifiez l’indicateur DontRoute comme socketflags
paramètre, les données que vous envoyez ne seront pas routées.
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
state
est une instanciation d’une classe définie par l’utilisateur.
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.
Notes
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunté et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, un instance spécifique Socket et un rappel spécifique), les utilisations suivantes de ce contexte voient une amélioration des performances.
Voir aussi
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling d'un délégué comme méthode de rappel
- Exemple de socket client asynchrone
- Exemple de sockets serveur asynchrones
S’applique à
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Envoie des données de façon asynchrone à un Socket connecté.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Paramètres
- offset
- Int32
Position de base zéro dans le paramètre buffer
à laquelle commencer l'envoi des données.
- size
- Int32
Le nombre d’octets à envoyer.
- socketFlags
- SocketFlags
Combinaison d’opérations de bits des valeurs SocketFlags.
- errorCode
- SocketError
Objet SocketError qui stocke l'erreur de socket.
- callback
- AsyncCallback
Délégué AsyncCallback.
- state
- Object
Objet qui contient les informations d’état de cette demande.
Retours
IAsyncResult qui fait référence à l'envoi asynchrone.
Exceptions
buffer
a la valeur null
.
.NET Framework et .NET 5 et versions antérieures uniquement : une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section Notes ci-dessous.
offset
est inférieur à 0.
- ou -
offset
est inférieur à la longueur de buffer
.
- ou -
size
est inférieur à 0.
- ou -
size
est supérieur à la longueur de buffer
moins la valeur du paramètre offset
.
Socket 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 un nouveau développement. Utilisez plutôt les Task
équivalents basés sur .
Vous pouvez passer un rappel qui implémente AsyncCallback sur BeginSend afin d’être informé de la fin de l’opération. Notez que si la pile réseau sous-jacente termine l’opération de manière synchrone, le rappel est exécuté inline, pendant l’appel à BeginSend. Dans ce cas, la CompletedSynchronously propriété sur le retourné IAsyncResult est définie true
sur pour indiquer que la méthode s’est terminée de manière synchrone. Utilisez la AsyncState propriété de pour IAsyncResult obtenir l’objet d’état passé à la BeginSend méthode .
L’opération asynchrone BeginSend doit être effectuée en appelant la EndSend méthode . En règle générale, la méthode est appelée par le AsyncCallback délégué. EndSend bloque le thread appelant jusqu’à ce que l’opération soit terminée.
Bien que destiné aux protocoles orientés connexion, BeginSend fonctionne également pour les protocoles sans connexion, à condition que vous appeliez d’abord la Connect méthode ou BeginConnect pour établir un hôte distant par défaut. Si vous utilisez un protocole sans connexion et que vous envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser BeginSendTo. Il est possible d’utiliser BeginSendTo même après avoir établi un hôte distant par défaut avec Connect. Vous pouvez également modifier l’hôte distant par défaut avant d’appeler BeginSend en effectuant un autre appel à Connect ou BeginConnect. Avec les protocoles sans connexion, vous devez également vous assurer que la taille de votre mémoire tampon ne dépasse pas la taille maximale des paquets du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et BeginSend lèvera un SocketException.
Si vous spécifiez l’indicateur DontRoute comme socketflags
paramètre, les données que vous envoyez ne seront pas routées.
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
state
est une instanciation d’une classe définie par l’utilisateur.
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.
Notes
Le contexte d’exécution (le contexte de sécurité, l’utilisateur emprunté et le contexte appelant) est mis en cache pour les méthodes asynchrones Socket . Après la première utilisation d’un contexte particulier (une méthode asynchrone Socket spécifique, un instance spécifique Socket et un rappel spécifique), les utilisations suivantes de ce contexte voient une amélioration des performances.
Voir aussi
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling d'un délégué comme méthode de rappel
- Exemple de socket client asynchrone
- Exemple de sockets serveur asynchrones