Compartir por


Socket.SendTo Método

Definición

Envía datos a un punto de conexión específico.

Sobrecargas

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

Envía el número especificado de bytes de datos al punto de conexión especificado, comenzando en la ubicación especificada en el búfer y utilizando el especificado SocketFlags.

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

Envía el número especificado de bytes de datos al punto de conexión especificado mediante el especificado SocketFlags.

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envía datos a un punto de conexión específico mediante el especificado SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envía datos al punto de conexión especificado.

SendTo(Byte[], SocketFlags, EndPoint)

Envía datos a un punto de conexión específico mediante el especificado SocketFlags.

SendTo(Byte[], EndPoint)

Envía datos al punto de conexión especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envía datos a un punto de conexión específico mediante el especificado SocketFlags.

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

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

Envía el número especificado de bytes de datos al punto de conexión especificado, comenzando en la ubicación especificada en el búfer y utilizando el especificado 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

Parámetros

buffer
Byte[]

Matriz de tipo Byte que contiene los datos que se van a enviar.

offset
Int32

Posición en el búfer de datos en el que se van a empezar a enviar datos.

size
Int32

Número de bytes que se van a enviar.

socketFlags
SocketFlags

Combinación bit a bit de los SocketFlags valores.

remoteEP
EndPoint

EndPoint que representa la ubicación de destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

buffer es null.

O bien

remoteEP es null.

offset es menor que 0.

O bien

offset es mayor que la longitud de buffer.

O bien

size es menor que 0.

O bien

size es mayor que la longitud de buffer menos el valor del offset parámetro.

socketFlags no es una combinación válida de valores.

O bien

Se produce un error del sistema operativo al acceder a .Socket

Un autor de llamada de la pila de llamadas no tiene los permisos necesarios.

Ejemplos

En el ejemplo de código siguiente se envía un datagrama sin conexión al host remoto especificado. El desplazamiento, el tamaño y SocketFlags se pasan al SendTo método .

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

Comentarios

En esta sobrecarga, si especifica la DontRoute marca como parámetro socketflags , los datos que se envían no se enrutarán.

Si usa un protocolo sin conexión, no es necesario establecer un host remoto predeterminado con el Connect método antes de llamar SendToa . Solo tiene que hacerlo si piensa llamar al Send método . Si llama al Connect método antes de llamar SendToa , el remoteEP parámetro invalidará el host remoto predeterminado especificado solo para esa operación de envío. Tampoco es necesario llamar al Bind método , ya que el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si necesita identificar la dirección de red local asignada y el número de puerto, puede usar la LocalEndPoint propiedad una vez completado correctamente el SendTo método.

Aunque está pensado para protocolos sin conexión, SendTo también funciona con protocolos orientados a la conexión. Si usa un protocolo orientado a la conexión, primero debe establecer una conexión de host remoto llamando al Connect método o aceptando una solicitud de conexión entrante mediante el Accept método . Si no establece o acepta una conexión de host remota, SendTo producirá una SocketExceptionexcepción . También puede establecer un host remoto predeterminado para un protocolo sin conexión antes de llamar al SendTo método . En cualquiera de estos casos, SendTo omitirá el remoteEP parámetro y solo enviará datos al host remoto conectado o predeterminado.

Los sockets de bloqueo se bloquearán hasta que se envíe el número solicitado de bytes. Dado que un no bloqueo Socket se completa inmediatamente, es posible que no envíe todos los bytes solicitados en una sola operación. Es responsabilidad de las aplicaciones realizar un seguimiento del número de bytes enviados y volver a intentar la operación hasta que la aplicación envíe el número de bytes solicitado. Tampoco hay ninguna garantía de que los datos que envíe aparecerán en la red inmediatamente. Para aumentar la eficiencia de la red, el sistema subyacente puede retrasar la transmisión hasta que se recopile una cantidad significativa de datos de salida. Una finalización correcta del SendTo método significa que el sistema subyacente ha tenido espacio para almacenar en búfer los datos de un envío de red.

Si usa un protocolo sin conexión en modo de bloqueo, SendTo se bloqueará hasta que se envíe el datagrama. Si desea enviar datos a una dirección de difusión, primero debe llamar al SetSocketOption método y establecer la opción de socket en SocketOptionName.Broadcast. También debe asegurarse de que el tamaño no supere el tamaño máximo del paquete del proveedor de servicios subyacente. Si lo hace, el datagrama no se enviará y SendTo producirá una SocketExceptionexcepción .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota:

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.

Consulte también

Se aplica a

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

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

Envía el número especificado de bytes de datos al punto de conexión especificado mediante el especificado 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

Parámetros

buffer
Byte[]

Matriz de tipo Byte que contiene los datos que se van a enviar.

size
Int32

Número de bytes que se van a enviar.

socketFlags
SocketFlags

Combinación bit a bit de los SocketFlags valores.

remoteEP
EndPoint

EndPoint que representa la ubicación de destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

buffer es null.

O bien

remoteEP es null.

El especificado size supera el tamaño de buffer.

Error al intentar acceder al socket.

Ejemplos

En el ejemplo de código siguiente se envía un datagrama sin conexión al host remoto especificado. El tamaño y SocketFlags se pasan al SendTo método .

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

Comentarios

En esta sobrecarga, el desplazamiento del búfer tiene como valor predeterminado 0. Si especifica la DontRoute marca como parámetro socketflags , los datos que se envían no se enrutarán.

Si usa un protocolo sin conexión, no es necesario establecer un host remoto predeterminado con el Connect método antes de llamar SendToa . Solo tiene que hacerlo si piensa llamar al Send método . Si llama al Connect método antes de llamar SendToa , el remoteEP parámetro invalidará el host remoto predeterminado especificado solo para esa operación de envío. Tampoco es necesario llamar al Bind método , ya que el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si necesita identificar la dirección de red local asignada y el número de puerto, puede usar la LocalEndPoint propiedad una vez completado correctamente el SendTo método.

Aunque está pensado para protocolos sin conexión, SendTo también funciona con protocolos orientados a la conexión. Si usa un protocolo orientado a la conexión, primero debe establecer una conexión de host remoto llamando al Connect método o aceptando una solicitud de conexión entrante mediante el Accept método . Si no establece o acepta una conexión de host remota, SendTo producirá una SocketExceptionexcepción . También puede establecer un host remoto predeterminado para un protocolo sin conexión antes de llamar al SendTo método . En cualquiera de estos casos, SendTo omitirá el remoteEP parámetro y solo enviará datos al host remoto conectado o predeterminado.

Los sockets de bloqueo se bloquearán hasta que se envíe el número solicitado de bytes. Dado que un bloqueo no se Socket completa inmediatamente, es posible que no envíe todos los bytes solicitados en una sola operación. Es responsabilidad de la aplicación realizar un seguimiento del número de bytes enviados y volver a intentar la operación hasta que la aplicación envíe el número de bytes solicitado. Tampoco hay ninguna garantía de que los datos que envíe aparecerán en la red inmediatamente. Para aumentar la eficiencia de la red, el sistema subyacente puede retrasar la transmisión hasta que se recopile una cantidad significativa de datos de salida. Una finalización correcta del SendTo método significa que el sistema subyacente ha tenido espacio para almacenar en búfer los datos de un envío de red.

Si usa un protocolo sin conexión en modo de bloqueo, SendTo se bloqueará hasta que se envíe el datagrama. Si desea enviar datos a una dirección de difusión, primero debe llamar al SetSocketOption método y establecer la opción de socket en SocketOptionName.Broadcast. También debe asegurarse de que el número de bytes enviados no supera el tamaño máximo del paquete del proveedor de servicios subyacente. Si lo hace, el datagrama no se enviará y SendTo producirá una SocketExceptionexcepción .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota:

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.

Consulte también

Se aplica a

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

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

Envía datos a un punto de conexión específico mediante el especificado 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

Parámetros

buffer
ReadOnlySpan<Byte>

Intervalo de bytes que contiene los datos que se van a enviar.

socketFlags
SocketFlags

Combinación bit a bit de los SocketFlags valores que se usarán al enviar los datos.

socketAddress
SocketAddress

SocketAddress que representa el destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

socketAddress es null.

Error al intentar acceder al socket.

Se aplica a

SendTo(ReadOnlySpan<Byte>, EndPoint)

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

Envía datos al punto de conexión especificado.

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

Parámetros

buffer
ReadOnlySpan<Byte>

Intervalo de bytes que contiene los datos que se van a enviar.

remoteEP
EndPoint

EndPoint que representa el destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

remoteEP es null.

Error al intentar acceder al socket.

Se aplica a

SendTo(Byte[], SocketFlags, EndPoint)

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

Envía datos a un punto de conexión específico mediante el especificado 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

Parámetros

buffer
Byte[]

Matriz de tipo Byte que contiene los datos que se van a enviar.

socketFlags
SocketFlags

Combinación bit a bit de los SocketFlags valores.

remoteEP
EndPoint

EndPoint que representa la ubicación de destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

buffer es null.

O bien

remoteEP es null.

Error al intentar acceder al socket.

Ejemplos

En el ejemplo de código siguiente se envía un datagrama sin conexión al host remoto especificado. SocketFlags se pasan al SendTo método .

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

Comentarios

En esta sobrecarga, el desplazamiento del búfer tiene como valor predeterminado 0 y el número de bytes para enviar valores predeterminados al tamaño de buffer. Si especifica la DontRoute marca como parámetro socketflags , los datos que se envían no se enrutarán.

Si usa un protocolo sin conexión, no es necesario establecer un host remoto predeterminado con el Connect método antes de llamar SendToa . Solo tiene que hacerlo si piensa llamar al Send método . Si llama al Connect método antes de llamar SendToa , el remoteEP parámetro invalidará el host remoto predeterminado especificado solo para esa operación de envío. Tampoco es necesario llamar al Bind método , ya que el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si necesita identificar la dirección de red local asignada y el número de puerto, puede usar la LocalEndPoint propiedad una vez completado correctamente el SendTo método.

Aunque está pensado para protocolos sin conexión, SendTo también funciona con protocolos orientados a la conexión. Si usa un protocolo orientado a la conexión, primero debe establecer una conexión de host remoto llamando al Connect método o aceptando una solicitud de conexión entrante mediante el Accept método . Si no establece o acepta una conexión de host remota, SendTo producirá una SocketExceptionexcepción . También puede establecer un host remoto predeterminado para un protocolo sin conexión antes de llamar al SendTo método . En cualquiera de estos casos, SendTo omitirá el remoteEP parámetro y solo enviará datos al host remoto conectado o predeterminado.

Los sockets de bloqueo se bloquearán hasta que se envíen todos los bytes solicitados.buffer Dado que un bloqueo no se Socket completa inmediatamente, es posible que no envíe todos los bytes en buffer. Es responsabilidad de la aplicación realizar un seguimiento del número de bytes enviados y volver a intentar la operación hasta que la aplicación envíe todos los bytes de buffer. Tampoco hay ninguna garantía de que los datos que envíe aparecerán en la red inmediatamente. Para aumentar la eficiencia de la red, el sistema subyacente puede retrasar la transmisión hasta que se recopile una cantidad significativa de datos de salida. Una finalización correcta del SendTo método significa que el sistema subyacente ha tenido espacio para almacenar en búfer los datos de un envío de red.

Si usa un protocolo sin conexión en modo de bloqueo, SendTo se bloqueará hasta que se envíe el datagrama. Si desea enviar datos a una dirección de difusión, primero debe llamar al SetSocketOption método y establecer la opción de socket en SocketOptionName.Broadcast. También debe asegurarse de que el número de bytes enviados no supera el tamaño máximo del paquete del proveedor de servicios subyacente. Si lo hace, el datagrama no se enviará y SendTo producirá una SocketExceptionexcepción .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota:

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.

Consulte también

Se aplica a

SendTo(Byte[], EndPoint)

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

Envía datos al punto de conexión especificado.

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

Parámetros

buffer
Byte[]

Matriz de tipo Byte que contiene los datos que se van a enviar.

remoteEP
EndPoint

EndPoint que representa el destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

buffer es null.

O bien

remoteEP es null.

Error al intentar acceder al socket.

Ejemplos

En el ejemplo de código siguiente se envía un datagrama sin conexión al host remoto especificado.

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

Comentarios

En esta sobrecarga, el desplazamiento del búfer tiene como valor predeterminado 0, el número de bytes para enviar valores predeterminados al tamaño del buffer parámetro y el SocketFlags valor predeterminado es 0.

Si usa un protocolo sin conexión, no es necesario establecer un host remoto predeterminado con el Connect método antes de llamar SendToa . Solo tiene que hacerlo si piensa llamar al Send método . Si llama al Connect método antes de llamar SendToa , el remoteEP parámetro invalidará el host remoto predeterminado especificado solo para esa operación de envío. Tampoco es necesario llamar al Bind método , ya que el proveedor de servicios subyacente asignará la dirección de red local y el número de puerto más adecuados. Si necesita identificar la dirección de red local asignada y el número de puerto, puede usar la LocalEndPoint propiedad una vez completado correctamente el SendTo método.

Aunque está pensado para protocolos sin conexión, SendTo también funciona con protocolos orientados a la conexión. Si usa un protocolo orientado a la conexión, primero debe establecer una conexión de host remoto llamando al Connect método o aceptando una solicitud de conexión entrante mediante el Accept método . Si no establece o acepta una conexión de host remota, SendTo producirá una SocketExceptionexcepción . También puede establecer un host remoto predeterminado para un protocolo sin conexión antes de llamar al SendTo método . En cualquiera de estos casos, SendTo omitirá el remoteEP parámetro y solo enviará datos al host remoto conectado o predeterminado.

Los sockets de bloqueo se bloquearán hasta que se envíen todos los bytes del búfer. Dado que un bloqueo no se Socket completa inmediatamente, es posible que no envíe todos los bytes en buffer. Es responsabilidad de la aplicación realizar un seguimiento del número de bytes enviados y volver a intentar la operación hasta que la aplicación envíe todos los bytes de buffer. Tampoco hay ninguna garantía de que los datos que envíe aparecerán en la red inmediatamente. Para aumentar la eficacia de la red, el sistema subyacente puede retrasar la transmisión hasta que se recopile una cantidad significativa de datos salientes. Una finalización correcta del SendTo método significa que el sistema subyacente ha tenido espacio para almacenar en búfer los datos de un envío de red.

Si usa un protocolo sin conexión en modo de bloqueo, SendTo se bloqueará hasta que se envíe el datagrama. Si desea enviar datos a una dirección de difusión, primero debe llamar al SetSocketOption método y establecer la opción de socket en SocketOptionName.Broadcast. También debe asegurarse de que el número de bytes enviados no supera el tamaño máximo del paquete del proveedor de servicios subyacente. Si lo hace, el datagrama no se enviará y SendTo producirá una SocketExceptionexcepción .

Nota:

Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico. Después de obtener este código, consulte la documentación del código de error de la API de Windows Sockets versión 2 para obtener una descripción detallada del error.

Nota:

Este miembro genera información de seguimiento al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.

Consulte también

Se aplica a

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

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

Envía datos a un punto de conexión específico mediante el especificado 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

Parámetros

buffer
ReadOnlySpan<Byte>

Intervalo de bytes que contiene los datos que se van a enviar.

socketFlags
SocketFlags

Combinación bit a bit de los SocketFlags valores.

remoteEP
EndPoint

EndPoint que representa el destino de los datos.

Devoluciones

Número de bytes enviados.

Excepciones

remoteEP es null.

Error al intentar acceder al socket.

Se aplica a