Partager via


Socket.Send Méthode

Définition

Envoie des données à un objet connecté Socket.

Surcharges

Nom Description
Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

Send(ReadOnlySpan<Byte>)

Envoie des données à un objet connecté Socket.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Envoie le nombre spécifié d’octets de données à un décalage connecté Socket, en commençant au décalage spécifié et en utilisant le paramètre spécifié SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket, à l’aide de l’objet spécifié SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags)

Envoie le nombre spécifié d’octets de données à un décalage connecté Socket, en commençant au décalage spécifié et en utilisant le paramètre spécifié SocketFlags.

Send(Byte[], Int32, SocketFlags)

Envoie le nombre spécifié d’octets de données à un objet connecté Socketà l’aide de l’objet spécifié SocketFlags.

Send(IList<ArraySegment<Byte>>)

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket, à l’aide de l’objet spécifié SocketFlags.

Send(Byte[], SocketFlags)

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

Send(Byte[])

Envoie des données à un objet connecté Socket.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

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

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Paramètres

buffer
ReadOnlySpan<Byte>

Étendue d’octets qui contient les données à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des valeurs d’énumération qui spécifient les comportements d’envoi et de réception.

errorCode
SocketError

Lorsque cette méthode est retournée, contient l’une des valeurs d’énumération qui définit des codes d’erreur pour le socket.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

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

Il Socket a été fermé.

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant spécifié dans l’ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite une mémoire tampon qui contient les données que vous souhaitez envoyer. La SocketFlags valeur par défaut est 0, le décalage de la mémoire tampon par défaut est égal à 0 et le nombre d’octets à envoyer par défaut à la taille de la mémoire tampon.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, peut se terminer correctement même Send s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

Important

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.

Voir aussi

S’applique à

Send(ReadOnlySpan<Byte>)

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

Envoie des données à un objet connecté Socket.

public:
 int Send(ReadOnlySpan<System::Byte> buffer);
public int Send(ReadOnlySpan<byte> buffer);
member this.Send : ReadOnlySpan<byte> -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte)) As Integer

Paramètres

buffer
ReadOnlySpan<Byte>

Étendue d’octets qui contient les données à envoyer.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

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

Il Socket a été fermé.

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant spécifié dans l’ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite une mémoire tampon qui contient les données que vous souhaitez envoyer. La SocketFlags valeur par défaut est 0, le décalage de la mémoire tampon par défaut est égal à 0 et le nombre d’octets à envoyer par défaut à la taille de la mémoire tampon.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, peut se terminer correctement même Send s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

Important

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.

Voir aussi

S’applique à

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

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

Envoie le nombre spécifié d’octets de données à un décalage connecté Socket, en commençant au décalage spécifié et en utilisant le paramètre spécifié SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à envoyer.

offset
Int32

Position dans la mémoire tampon de données à laquelle commencer l’envoi de données.

size
Int32

Nombre d’octets à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

errorCode
SocketError

Objet SocketError qui stocke l’erreur de socket.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffer a la valeur null.

offset est inférieur à 0.

- ou -

offset est supérieur à la longueur de buffer.

- ou -

size est inférieur à 0.

- ou -

size est supérieur à la longueur de buffer moins la valeur du offset paramètre.

socketFlags n’est pas une combinaison valide de valeurs.

- ou -

Une erreur de système d’exploitation se produit lors de l’accès au Socket.

Il Socket a été fermé.

Exemples

L’exemple de code suivant spécifie la mémoire tampon de données, un décalage, une taille et SocketFlags l’envoi de données à un objet connecté Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant spécifié dans l’ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Dans cette surcharge, si vous spécifiez l’indicateur DontRoute comme socketflags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser SendTo. Si vous n’utilisez SendTopas, vous devrez appeler Connect avant chaque appel à Send. Il est acceptable d’utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Vous devez également vous assurer que la taille ne dépasse pas la taille de paquet maximale du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et Send lève un SocketException.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que le nombre demandé d’octets soit envoyé, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, Send peut s’exécuter correctement même s’il envoie moins que le nombre d’octets que vous demandez. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie le nombre demandé d’octets. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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

S’applique à

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

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

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket, à l’aide de l’objet spécifié SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Paramètres

buffers
IList<ArraySegment<Byte>>

Liste de ArraySegment<T>s de type Byte qui contient les données à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

errorCode
SocketError

Objet SocketError qui stocke l’erreur de socket.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffers a la valeur null.

buffers est vide.

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

Il Socket a été fermé.

Remarques

Cette surcharge nécessite au moins une mémoire tampon qui contient les données que vous souhaitez envoyer. La SocketFlags valeur par défaut est 0. Si vous spécifiez l’indicateur DontRoute comme socketFlags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devrez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, Send peut se terminer correctement même s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

S’applique à

Send(Byte[], Int32, Int32, SocketFlags)

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

Envoie le nombre spécifié d’octets de données à un décalage connecté Socket, en commençant au décalage spécifié et en utilisant le paramètre spécifié SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à envoyer.

offset
Int32

Position dans la mémoire tampon de données à laquelle commencer l’envoi de données.

size
Int32

Nombre d’octets à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffer a la valeur null.

offset est inférieur à 0.

- ou -

offset est supérieur à la longueur de buffer.

- ou -

size est inférieur à 0.

- ou -

size est supérieur à la longueur de buffer moins la valeur du offset paramètre.

socketFlags n’est pas une combinaison valide de valeurs.

- ou -

Une erreur de système d’exploitation se produit lors de l’accès au Socket.

Il Socket a été fermé.

Exemples

L’exemple de code suivant spécifie la mémoire tampon de données, un décalage, une taille et SocketFlags l’envoi de données à un objet connecté Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant spécifié dans l’ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Dans cette surcharge, si vous spécifiez l’indicateur DontRoute comme socketflags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser SendTo. Si vous n’utilisez SendTopas, vous devrez appeler Connect avant chaque appel à Send. Il est acceptable d’utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Vous devez également vous assurer que la taille ne dépasse pas la taille de paquet maximale du fournisseur de services sous-jacent. Si c’est le cas, le datagramme ne sera pas envoyé et Send lève un SocketException.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que le nombre demandé d’octets soit envoyé, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, Send peut s’exécuter correctement même s’il envoie moins que le nombre d’octets que vous demandez. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie le nombre demandé d’octets. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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

S’applique à

Send(Byte[], Int32, SocketFlags)

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

Envoie le nombre spécifié d’octets de données à un objet connecté Socketà l’aide de l’objet spécifié SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à envoyer.

size
Int32

Nombre d’octets à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffer a la valeur null.

size est inférieur à 0 ou dépasse la taille de la mémoire tampon.

socketFlags n’est pas une combinaison valide de valeurs.

- ou -

Une erreur de système d’exploitation se produit lors de l’accès au socket.

Il Socket a été fermé.

Exemples

L’exemple de code suivant envoie les données trouvées dans la mémoire tampon et spécifie None pour SocketFlags.

// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
public static int SendReceiveTest3(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        int byteCount = server.Receive(bytes, bytes.Length, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, message size, and socket flags.
Public Shared Function SendReceiveTest3(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        Dim byteCount As Integer = server.Receive(bytes, server.Available, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest3

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant établi dans le ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite une mémoire tampon qui contient les données que vous souhaitez envoyer, le nombre d’octets que vous souhaitez envoyer et une combinaison au niveau du bit de n’importe quel SocketFlags. Si vous spécifiez l’indicateur DontRoute comme socketflags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devez appeler la Connect méthode avant chaque appel à la Send méthode. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Avec un protocole orienté connexion, Send bloque jusqu’à ce que le nombre demandé d’octets soit envoyé, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, Send peut s’exécuter correctement même s’il envoie moins que le nombre d’octets que vous demandez. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie le nombre demandé d’octets. Il n’existe pas non plus de 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 Send place pour mettre en mémoire tampon vos données pour un envoi réseau.

Note

Vous devez vous assurer que la taille 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 Send lève un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

Important

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.

Voir aussi

S’applique à

Send(IList<ArraySegment<Byte>>)

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

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte))) As Integer

Paramètres

buffers
IList<ArraySegment<Byte>>

Liste de ArraySegment<T>s de type Byte qui contient les données à envoyer.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffers a la valeur null.

buffers est vide.

Une erreur s’est produite lors de la tentative d’accès au socket. Consultez la section remarques ci-dessous.

Il Socket a été fermé.

Remarques

Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite au moins une mémoire tampon qui contient les données que vous souhaitez envoyer.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devrez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, peut se terminer correctement même Send s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

S’applique à

Send(IList<ArraySegment<Byte>>, SocketFlags)

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

Envoie l’ensemble de mémoires tampons de la liste à un objet connecté Socket, à l’aide de l’objet spécifié SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer

Paramètres

buffers
IList<ArraySegment<Byte>>

Liste de ArraySegment<T>s de type Byte qui contient les données à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffers a la valeur null.

buffers est vide.

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

Il Socket a été fermé.

Remarques

Cette surcharge nécessite au moins une mémoire tampon qui contient les données que vous souhaitez envoyer. La SocketFlags valeur par défaut est 0. Si vous spécifiez l’indicateur DontRoute comme socketFlags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devrez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, Send peut se terminer correctement même s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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.

S’applique à

Send(Byte[], SocketFlags)

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

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), socketFlags As SocketFlags) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffer a la valeur null.

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

Il Socket a été fermé.

Exemples

L’exemple de code suivant illustre l’envoi de données sur une connexion Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest2

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant établi dans le ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. La Send méthode peut être utilisée pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite une mémoire tampon qui contient les données que vous souhaitez envoyer et une combinaison au niveau du bit .SocketFlags Le décalage de la mémoire tampon est défini par défaut sur 0 et le nombre d’octets à envoyer par défaut à la taille de la mémoire tampon. Si vous spécifiez l’indicateur DontRoute comme valeur de socketflags paramètre, les données que vous envoyez ne seront pas routées.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devrez appeler la Connect méthode avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, peut se terminer correctement même Send s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie le nombre demandé d’octets. Il n’existe pas non plus de 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 Send place pour mettre en mémoire tampon vos données pour un envoi réseau.

Note

Vous devez 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 Send lève un SocketException. Si vous recevez un SocketException, utilisez la SocketException.ErrorCode propriété pour obtenir le code d’erreur spécifique. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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

S’applique à

Send(ReadOnlySpan<Byte>, SocketFlags)

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

Envoie des données à un connecté Socket à l’aide du fichier spécifié SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags) As Integer

Paramètres

buffer
ReadOnlySpan<Byte>

Étendue d’octets qui contient les données à envoyer.

socketFlags
SocketFlags

Combinaison au niveau du bit des valeurs d’énumération qui spécifient les comportements d’envoi et de réception.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

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

Il Socket a été fermé.

Voir aussi

S’applique à

Send(Byte[])

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

Envoie des données à un objet connecté Socket.

public:
 int Send(cli::array <System::Byte> ^ buffer);
public int Send(byte[] buffer);
member this.Send : byte[] -> int
Public Function Send (buffer As Byte()) As Integer

Paramètres

buffer
Byte[]

Tableau de type Byte qui contient les données à envoyer.

Retours

Nombre d’octets envoyés au Socket.

Exceptions

buffer a la valeur null.

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

Il Socket a été fermé.

Exemples

L’exemple de code suivant illustre l’envoi de données sur une connexion Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        i = server.Receive(bytes);
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        i = server.Receive(bytes)
        Console.WriteLine(Encoding.UTF8.GetString(bytes))
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest1

Remarques

Sendenvoie de manière synchrone des données à l’hôte distant spécifié dans l’ou Accept la Connect méthode et retourne le nombre d’octets envoyés avec succès. Send peut être utilisé pour les protocoles orientés connexion et sans connexion.

Cette surcharge nécessite une mémoire tampon qui contient les données que vous souhaitez envoyer. La SocketFlags valeur par défaut est 0, le décalage de la mémoire tampon par défaut est égal à 0 et le nombre d’octets à envoyer par défaut à la taille de la mémoire tampon.

Si vous utilisez un protocole sans connexion, vous devez appeler avant d’appeler Connect cette méthode, ou Send lève un SocketException. Si vous utilisez un protocole orienté connexion, vous devez l’utiliser Connect pour établir une connexion hôte distante ou Accept pour accepter une connexion entrante.

Si vous utilisez un protocole sans connexion et envisagez d’envoyer des données à plusieurs hôtes différents, vous devez utiliser la SendTo méthode. Si vous n’utilisez pas la SendTo méthode, vous devrez appeler Connect avant chaque appel à Send. Vous pouvez utiliser SendTo 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 Send en effectuant un autre appel à Connect.

Si vous utilisez un protocole orienté connexion, Send bloque jusqu’à ce que tous les octets de la mémoire tampon soient envoyés, sauf si un délai d’attente a été défini à l’aide Socket.SendTimeoutde . Si la valeur de délai d’attente a été dépassée, l’appel Send lève un SocketException. En mode non bloquant, peut se terminer correctement même Send s’il envoie moins d’octets dans la mémoire tampon. Il incombe à votre application de suivre le nombre d’octets envoyés et de réessayer l’opération jusqu’à ce que l’application envoie les octets dans la mémoire tampon. Il n’existe pas non plus de 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 Send 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. Une fois que vous avez obtenu ce code, reportez-vous à la documentation du code d’erreur de l’API Windows Sockets version 2 pour obtenir une description détaillée de l’erreur.

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

S’applique à