Partager via


Socket.SendTo Méthode

Définition

Envoie des données à un point de terminaison spécifique.

Surcharges

Nom Description
SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Envoie le nombre spécifié d’octets de données au point de terminaison spécifié, en commençant à l’emplacement spécifié dans la mémoire tampon et en utilisant le point de terminaison spécifié SocketFlags.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Envoie le nombre spécifié d’octets de données au point de terminaison spécifié à l’aide de l’objet spécifié SocketFlags.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envoie des données au point de terminaison spécifié.

SendTo(Byte[], SocketFlags, EndPoint)

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

SendTo(Byte[], EndPoint)

Envoie des données au point de terminaison spécifié.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

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 au point de terminaison spécifié, en commençant à l’emplacement spécifié dans la mémoire tampon et en utilisant le point de terminaison spécifié SocketFlags.

public:
 int SendTo(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : byte[] * int * int * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, remoteEP As EndPoint) 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.

remoteEP
EndPoint

Qui EndPoint représente l’emplacement de destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

buffer a la valeur null.

- ou -

remoteEP 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é.

Un appelant dans la pile des appels n’a pas les autorisations requises.

Exemples

L’exemple de code suivant envoie un datagramme sans connexion à l’hôte distant spécifié. Décalage, taille et SocketFlags passage à la SendTo méthode.

public static void SendTo4()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo4() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

Remarques

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 n’avez pas besoin d’établir un hôte distant par défaut avec la Connect méthode avant d’appeler SendTo. Vous n’avez besoin de le faire que si vous envisagez d’appeler la Send méthode. Si vous appelez la Connect méthode avant d’appeler SendTo, le remoteEP paramètre remplace l’hôte distant par défaut spécifié pour cette opération d’envoi uniquement. Vous n’êtes pas également obligé d’appeler la Bind méthode, car le fournisseur de services sous-jacent affecte l’adresse réseau locale et le numéro de port les plus appropriés. Si vous devez identifier l’adresse de réseau local et le numéro de port attribués, vous pouvez utiliser la LocalEndPoint propriété une fois la SendTo méthode terminée.

Bien que prévu pour les protocoles sans connexion, SendTo fonctionne également avec les protocoles orientés connexion. Si vous utilisez un protocole orienté connexion, vous devez d’abord établir une connexion hôte distante en appelant la Connect méthode ou en acceptant une demande de connexion entrante à l’aide de la Accept méthode. Si vous n’établissez pas ou n’acceptez pas de connexion hôte distante, SendTo lève un SocketException. Vous pouvez également établir un hôte distant par défaut pour un protocole sans connexion avant d’appeler la SendTo méthode. Dans l’un de ces cas, SendTo ignore le remoteEP paramètre et envoie uniquement des données à l’hôte distant connecté ou par défaut.

Les sockets bloquants bloquent jusqu’à ce que le nombre demandé d’octets soit envoyé. Étant donné qu’un non-blocage Socket se termine immédiatement, il peut ne pas envoyer tous les octets demandés dans une seule opération. Il incombe à vos applications 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é importante 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 SendTo place pour mettre en mémoire tampon vos données pour un envoi réseau.

Si vous utilisez un protocole sans connexion en mode bloquant, SendTo bloque jusqu’à ce que le datagramme soit envoyé. Si vous souhaitez envoyer des données à une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et définir l’option SocketOptionName.Broadcastde socket sur . 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 SendTo lève un SocketException.

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

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 à

SendTo(Byte[], Int32, SocketFlags, EndPoint)

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 au point de terminaison spécifié à l’aide de l’objet spécifié SocketFlags.

public:
 int SendTo(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : byte[] * int * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As Byte(), size As Integer, socketFlags As SocketFlags, remoteEP As EndPoint) 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.

remoteEP
EndPoint

Qui EndPoint représente l’emplacement de destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

buffer a la valeur null.

- ou -

remoteEP a la valeur null.

Le paramètre spécifié size dépasse la taille de buffer.

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 envoie un datagramme sans connexion à l’hôte distant spécifié. La taille et SocketFlags sont passées à la SendTo méthode.

public static void SendTo3()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo3() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

Remarques

Dans cette surcharge, le décalage de la mémoire tampon est défini par défaut sur 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 n’avez pas besoin d’établir un hôte distant par défaut avec la Connect méthode avant d’appeler SendTo. Vous n’avez besoin de le faire que si vous envisagez d’appeler la Send méthode. Si vous appelez la Connect méthode avant d’appeler SendTo, le remoteEP paramètre remplace l’hôte distant par défaut spécifié pour cette opération d’envoi uniquement. Vous n’êtes pas également obligé d’appeler la Bind méthode, car le fournisseur de services sous-jacent affecte l’adresse réseau locale et le numéro de port les plus appropriés. Si vous devez identifier l’adresse de réseau local et le numéro de port attribués, vous pouvez utiliser la LocalEndPoint propriété une fois la SendTo méthode terminée.

Bien que prévu pour les protocoles sans connexion, SendTo fonctionne également avec les protocoles orientés connexion. Si vous utilisez un protocole orienté connexion, vous devez d’abord établir une connexion hôte distante en appelant la Connect méthode ou en acceptant une demande de connexion entrante à l’aide de la Accept méthode. Si vous n’établissez pas ou n’acceptez pas de connexion hôte distante, SendTo lève un SocketException. Vous pouvez également établir un hôte distant par défaut pour un protocole sans connexion avant d’appeler la SendTo méthode. Dans l’un de ces cas, SendTo ignore le remoteEP paramètre et envoie uniquement des données à l’hôte distant connecté ou par défaut.

Les sockets bloquants bloquent jusqu’à ce que le nombre demandé d’octets soit envoyé. Étant donné qu’un blocage Socket se termine immédiatement, il peut ne pas envoyer tous les octets demandés dans une seule opération. 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é importante 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 SendTo place pour mettre en mémoire tampon vos données pour un envoi réseau.

Si vous utilisez un protocole sans connexion en mode bloquant, SendTo bloque jusqu’à ce que le datagramme soit envoyé. Si vous souhaitez envoyer des données à une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et définir l’option SocketOptionName.Broadcastde socket sur . Vous devez également être sûr que le nombre d’octets envoyés 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 SendTo lève un SocketException.

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

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 à

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

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

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::SocketAddress ^ socketAddress);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress);
member this.SendTo : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress) 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 qui seront utilisées lors de SocketFlags l’envoi des données.

socketAddress
SocketAddress

Qui SocketAddress représente la destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

socketAddress a la valeur null.

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

Il Socket a été fermé.

S’applique à

SendTo(ReadOnlySpan<Byte>, EndPoint)

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

Envoie des données au point de terminaison spécifié.

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendTo : ReadOnlySpan<byte> * System.Net.EndPoint -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), remoteEP As EndPoint) As Integer

Paramètres

buffer
ReadOnlySpan<Byte>

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

remoteEP
EndPoint

Qui EndPoint représente la destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

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

Il Socket a été fermé.

S’applique à

SendTo(Byte[], SocketFlags, EndPoint)

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

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

public:
 int SendTo(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : byte[] * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As Byte(), socketFlags As SocketFlags, remoteEP As EndPoint) 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.

remoteEP
EndPoint

Qui EndPoint représente l’emplacement de destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

buffer a la valeur null.

- ou -

remoteEP 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 envoie un datagramme sans connexion à l’hôte distant spécifié. SocketFlags sont passés à la SendTo méthode.

public static void SendTo2()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo2() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, SocketFlags.None, endPoint)
    s.Close()

End Sub

Remarques

Dans cette surcharge, le décalage de la mémoire tampon est par défaut égal à 0 et le nombre d’octets à envoyer par défaut à la taille du buffer. 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 n’avez pas besoin d’établir un hôte distant par défaut avec la Connect méthode avant d’appeler SendTo. Vous n’avez besoin de le faire que si vous envisagez d’appeler la Send méthode. Si vous appelez la Connect méthode avant d’appeler SendTo, le remoteEP paramètre remplace l’hôte distant par défaut spécifié pour cette opération d’envoi uniquement. Vous n’êtes pas également obligé d’appeler la Bind méthode, car le fournisseur de services sous-jacent affecte l’adresse réseau locale et le numéro de port les plus appropriés. Si vous devez identifier l’adresse de réseau local et le numéro de port attribués, vous pouvez utiliser la LocalEndPoint propriété une fois la SendTo méthode terminée.

Bien que prévu pour les protocoles sans connexion, SendTo fonctionne également avec les protocoles orientés connexion. Si vous utilisez un protocole orienté connexion, vous devez d’abord établir une connexion hôte distante en appelant la Connect méthode ou en acceptant une demande de connexion entrante à l’aide de la Accept méthode. Si vous n’établissez pas ou n’acceptez pas de connexion hôte distante, SendTo lève un SocketException. Vous pouvez également établir un hôte distant par défaut pour un protocole sans connexion avant d’appeler la SendTo méthode. Dans l’un de ces cas, SendTo ignore le remoteEP paramètre et envoie uniquement des données à l’hôte distant connecté ou par défaut.

Les sockets bloquants bloquent jusqu’à ce que tous les octets demandés dans le fichier buffer soient envoyés. Étant donné qu’un non-blocage Socket se termine immédiatement, il peut ne pas envoyer tous les octets dans le buffer. 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 tous les octets dans le buffer. 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é importante 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 SendTo place pour mettre en mémoire tampon vos données pour un envoi réseau.

Si vous utilisez un protocole sans connexion en mode bloquant, SendTo bloque jusqu’à ce que le datagramme soit envoyé. Si vous souhaitez envoyer des données à une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et définir l’option SocketOptionName.Broadcastde socket sur . Vous devez également être sûr que le nombre d’octets envoyés 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 SendTo lève un SocketException.

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

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 à

SendTo(Byte[], EndPoint)

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

Envoie des données au point de terminaison spécifié.

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

Paramètres

buffer
Byte[]

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

remoteEP
EndPoint

Qui EndPoint représente la destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

buffer a la valeur null.

- ou -

remoteEP 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 envoie un datagramme sans connexion à l’hôte distant spécifié.

public static void SendTo1()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, endPoint);
    s.Close();
}
Public Shared Sub SendTo1() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, endPoint)
    s.Close()

End Sub

Remarques

Dans cette surcharge, le décalage de la mémoire tampon est par défaut égal à 0, le nombre d’octets à envoyer par défaut à la taille du buffer paramètre et la SocketFlags valeur par défaut est 0.

Si vous utilisez un protocole sans connexion, vous n’avez pas besoin d’établir un hôte distant par défaut avec la Connect méthode avant d’appeler SendTo. Vous n’avez besoin de le faire que si vous envisagez d’appeler la Send méthode. Si vous appelez la Connect méthode avant d’appeler SendTo, le remoteEP paramètre remplace l’hôte distant par défaut spécifié pour cette opération d’envoi uniquement. Vous n’êtes pas également obligé d’appeler la Bind méthode, car le fournisseur de services sous-jacent affecte l’adresse réseau locale et le numéro de port les plus appropriés. Si vous devez identifier l’adresse de réseau local et le numéro de port attribués, vous pouvez utiliser la LocalEndPoint propriété une fois la SendTo méthode terminée.

Bien que prévu pour les protocoles sans connexion, SendTo fonctionne également avec les protocoles orientés connexion. Si vous utilisez un protocole orienté connexion, vous devez d’abord établir une connexion hôte distante en appelant la Connect méthode ou en acceptant une demande de connexion entrante à l’aide de la Accept méthode. Si vous n’établissez pas ou n’acceptez pas de connexion hôte distante, SendTo lève un SocketException. Vous pouvez également établir un hôte distant par défaut pour un protocole sans connexion avant d’appeler la SendTo méthode. Dans l’un de ces cas, SendTo ignore le remoteEP paramètre et envoie uniquement des données à l’hôte distant connecté ou par défaut.

Les sockets bloquants bloquent jusqu’à ce que tous les octets de la mémoire tampon soient envoyés. Étant donné qu’un non-blocage Socket se termine immédiatement, il peut ne pas envoyer tous les octets dans le buffer. 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 tous les octets dans le buffer. 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 SendTo place pour mettre en mémoire tampon vos données pour un envoi réseau.

Si vous utilisez un protocole sans connexion en mode bloquant, SendTo bloque jusqu’à ce que le datagramme soit envoyé. Si vous souhaitez envoyer des données à une adresse de diffusion, vous devez d’abord appeler la SetSocketOption méthode et définir l’option SocketOptionName.Broadcastde socket sur . Vous devez également être sûr que le nombre d’octets envoyés 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 SendTo lève un SocketException.

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

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 à

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

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

Envoie des données à un point de terminaison spécifique à l’aide de l’élément spécifié SocketFlags.

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

Paramètres

buffer
ReadOnlySpan<Byte>

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

socketFlags
SocketFlags

Combinaison au niveau du bit des SocketFlags valeurs.

remoteEP
EndPoint

Qui EndPoint représente la destination des données.

Retours

Nombre d’octets envoyés.

Exceptions

remoteEP a la valeur null.

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

Il Socket a été fermé.

S’applique à