Socket.SendTo Método

Definição

Envia dados para um endpoint específico.

Sobrecargas

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

Envia o número especificado de bytes de dados para o endpoint especificado, começando na localização especificada no buffer, e usando o .SocketFlags

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

Envia o número especificado de bytes de dados para o endpoint especificado usando o .SocketFlags

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envia dados para um endpoint específico usando o especificado SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envia dados para o endpoint especificado.

SendTo(Byte[], SocketFlags, EndPoint)

Envia dados para um endpoint específico usando o especificado SocketFlags.

SendTo(Byte[], EndPoint)

Envia dados para o endpoint especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envia dados para um endpoint específico usando o especificado SocketFlags.

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

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia o número especificado de bytes de dados para o endpoint especificado, começando na localização especificada no buffer, e usando o .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[]

Um array de tipo Byte que contém os dados a enviar.

offset
Int32

A posição no buffer de dados onde começar a enviar dados.

size
Int32

O número de bytes a enviar.

socketFlags
SocketFlags

Uma combinação bit a bit dos SocketFlags valores.

remoteEP
EndPoint

O EndPoint que representa a localização de destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

buffer é null.

-ou-

remoteEP é null.

offset é inferior a 0.

-ou-

offset é maior do que o comprimento de buffer.

-ou-

size é inferior a 0.

-ou-

size é maior do que o comprimento de buffer menos o valor do offset parâmetro.

socketFlags não é uma combinação válida de valores.

-ou-

Ocorre um erro do sistema operativo ao aceder ao Socketarquivo .

O Socket local foi encerrado.

Um chamador na pilha de chamadas não tem as permissões necessárias.

Exemplos

O exemplo de código seguinte envia um datagrama sem ligação para o host remoto especificado. O deslocamento, tamanho e SocketFlags são passados ao 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

Observações

Nesta sobrecarga, se especificar a DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.

Se estiver a usar um protocolo sem conexão, não precisa de estabelecer um host remoto predefinido com o Connect método antes de chamar SendTo. Só precisa de fazer isto se pretende chamar o Send método. Se chamar o Connect método antes de chamar SendTo, o remoteEP parâmetro irá sobrescrever o host remoto predefinido especificado apenas para essa operação de envio. Também não é obrigado a ligar para o Bind método, porque o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se precisar de identificar o endereço de rede local atribuído e o número de porta, pode usar a LocalEndPoint propriedade depois de o SendTo método ser concluído com sucesso.

Embora destinado a protocolos sem ligação, SendTo também funciona com protocolos orientados à ligação. Se estiver a usar um protocolo orientado à ligação, deve primeiro estabelecer uma ligação remota ao host, chamando o Connect método ou aceitando um pedido de ligação recebido usando o Accept método. Se não estabelecer ou aceitar uma ligação remota ao host, SendTo aparecerá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o SendTo método. Em qualquer um destes casos, SendTo ignora o remoteEP parâmetro e só envia dados para o host remoto ligado ou predefinido.

Soquetes de bloqueio bloqueiam até que o número de bytes solicitado seja enviado. Como um dispositivo não bloqueante Socket é concluído imediatamente, pode não enviar todos os bytes solicitados numa única operação. É responsabilidade da sua aplicação acompanhar o número de bytes enviados e tentar novamente a operação até que a aplicação envie o número de bytes solicitado. Também não há garantia de que os dados que envia apareçam imediatamente na rede. Para aumentar a eficiência da rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados de saída seja recolhida. A conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar os seus dados para um envio em rede.

Se estiver a usar um protocolo sem ligação em modo de bloqueio, SendTo irá bloquear até o datagrama ser enviado. Se quiser enviar dados para um endereço de broadcast, deve primeiro chamar o SetSocketOption método e definir a opção socket para SocketOptionName.Broadcast. Deve também garantir que o tamanho não excede o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e SendTo irá lançar um SocketException.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

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

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia o número especificado de bytes de dados para o endpoint especificado usando o .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[]

Um array de tipo Byte que contém os dados a enviar.

size
Int32

O número de bytes a enviar.

socketFlags
SocketFlags

Uma combinação bit a bit dos SocketFlags valores.

remoteEP
EndPoint

O EndPoint que representa a localização de destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

buffer é null.

-ou-

remoteEP é null.

O especificado size excede o tamanho de buffer.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte envia um datagrama sem ligação para o host remoto especificado. O tamanho e SocketFlags são passados para o 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

Observações

Nesta sobrecarga, o deslocamento do buffer passa a ser 0 por defeito. Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.

Se estiver a usar um protocolo sem conexão, não precisa de estabelecer um host remoto predefinido com o Connect método antes de chamar SendTo. Só precisa de fazer isto se pretende chamar o Send método. Se chamar o Connect método antes de chamar SendTo, o remoteEP parâmetro irá sobrescrever o host remoto predefinido especificado apenas para essa operação de envio. Também não é obrigado a ligar para o Bind método, porque o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se precisar de identificar o endereço de rede local atribuído e o número de porta, pode usar a LocalEndPoint propriedade depois de o SendTo método ser concluído com sucesso.

Embora destinado a protocolos sem ligação, SendTo também funciona com protocolos orientados à ligação. Se estiver a usar um protocolo orientado à ligação, deve primeiro estabelecer uma ligação remota ao host, chamando o Connect método ou aceitando um pedido de ligação recebido usando o Accept método. Se não estabelecer ou aceitar uma ligação remota ao host, SendTo aparecerá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o SendTo método. Em qualquer um destes casos, SendTo ignora o remoteEP parâmetro e só envia dados para o host remoto ligado ou predefinido.

Soquetes de bloqueio bloqueiam até que o número de bytes solicitado seja enviado. Como um não-bloqueante Socket é concluído imediatamente, pode não enviar todos os bytes solicitados numa única operação. É responsabilidade da sua aplicação acompanhar o número de bytes enviados e tentar novamente a operação até que a aplicação envie o número de bytes solicitado. Também não há garantia de que os dados que envia apareçam imediatamente na rede. Para aumentar a eficiência da rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados de saída seja recolhida. A conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar os seus dados para um envio em rede.

Se estiver a usar um protocolo sem ligação em modo de bloqueio, SendTo irá bloquear até o datagrama ser enviado. Se quiser enviar dados para um endereço de broadcast, deve primeiro chamar o SetSocketOption método e definir a opção socket para SocketOptionName.Broadcast. Deve também garantir que o número de bytes enviados não ultrapassa o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e SendTo irá lançar um SocketException.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados para um endpoint específico usando o 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>

Um intervalo de bytes que contém os dados a enviar.

socketFlags
SocketFlags

Uma combinação bit a bit dos SocketFlags valores que serão usados ao enviar os dados.

socketAddress
SocketAddress

O SocketAddress que representa o destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

socketAddress é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a

SendTo(ReadOnlySpan<Byte>, EndPoint)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados para o endpoint 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>

Um intervalo de bytes que contém os dados a enviar.

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a

SendTo(Byte[], SocketFlags, EndPoint)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados para um endpoint específico usando o 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[]

Um array de tipo Byte que contém os dados a enviar.

socketFlags
SocketFlags

Uma combinação bit a bit dos SocketFlags valores.

remoteEP
EndPoint

O EndPoint que representa a localização de destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

buffer é null.

-ou-

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte envia um datagrama sem ligação para o host remoto especificado. SocketFlags são passados para o 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

Observações

Nesta sobrecarga, o deslocamento do buffer passa por defeito a 0, e o número de bytes a enviar corresponde ao tamanho do buffer. Se especificar o DontRoute flag como parâmetro socketflags , os dados que está a enviar não serão encaminhados.

Se estiver a usar um protocolo sem conexão, não precisa de estabelecer um host remoto predefinido com o Connect método antes de chamar SendTo. Só precisa de fazer isto se pretende chamar o Send método. Se chamar o Connect método antes de chamar SendTo, o remoteEP parâmetro irá sobrescrever o host remoto predefinido especificado apenas para essa operação de envio. Também não é obrigado a ligar para o Bind método, porque o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se precisar de identificar o endereço de rede local atribuído e o número de porta, pode usar a LocalEndPoint propriedade depois de o SendTo método ser concluído com sucesso.

Embora destinado a protocolos sem ligação, SendTo também funciona com protocolos orientados à ligação. Se estiver a usar um protocolo orientado à ligação, deve primeiro estabelecer uma ligação remota ao host, chamando o Connect método ou aceitando um pedido de ligação recebido usando o Accept método. Se não estabelecer ou aceitar uma ligação remota ao host, SendTo aparecerá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o SendTo método. Em qualquer um destes casos, SendTo ignora o remoteEP parâmetro e só envia dados para o host remoto ligado ou predefinido.

Soquetes de bloqueio bloqueiam até que todos os bytes solicitados sejam buffer enviados. Como um não-bloqueante Socket conclui imediatamente, pode não enviar todos os bytes no buffer. É responsabilidade da sua aplicação acompanhar o número de bytes enviados e tentar novamente a operação até que a aplicação envie todos os bytes no buffer. Também não há garantia de que os dados que envia apareçam imediatamente na rede. Para aumentar a eficiência da rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados de saída seja recolhida. A conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar os seus dados para um envio em rede.

Se estiver a usar um protocolo sem ligação em modo de bloqueio, SendTo irá bloquear até o datagrama ser enviado. Se quiser enviar dados para um endereço de broadcast, deve primeiro chamar o SetSocketOption método e definir a opção socket para SocketOptionName.Broadcast. Deve também garantir que o número de bytes enviados não ultrapassa o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e SendTo irá lançar um SocketException.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

SendTo(Byte[], EndPoint)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados para o endpoint 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[]

Um array de tipo Byte que contém os dados a enviar.

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

buffer é null.

-ou-

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte envia um datagrama sem ligação para o 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

Observações

Nesta sobrecarga, o deslocamento do buffer passa a 0 por defeito, o número de bytes a enviar corresponde ao tamanho do buffer parâmetro, e o SocketFlags valor é 0.

Se estiver a usar um protocolo sem conexão, não precisa de estabelecer um host remoto predefinido com o Connect método antes de chamar SendTo. Só precisa de fazer isto se pretende chamar o Send método. Se chamar o Connect método antes de chamar SendTo, o remoteEP parâmetro irá sobrescrever o host remoto predefinido especificado apenas para essa operação de envio. Também não é obrigado a ligar para o Bind método, porque o fornecedor de serviço subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se precisar de identificar o endereço de rede local atribuído e o número de porta, pode usar a LocalEndPoint propriedade depois de o SendTo método ser concluído com sucesso.

Embora destinado a protocolos sem ligação, SendTo também funciona com protocolos orientados à ligação. Se estiver a usar um protocolo orientado à ligação, deve primeiro estabelecer uma ligação remota ao host, chamando o Connect método ou aceitando um pedido de ligação recebido usando o Accept método. Se não estabelecer ou aceitar uma ligação remota ao host, SendTo aparecerá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o SendTo método. Em qualquer um destes casos, SendTo ignora o remoteEP parâmetro e só envia dados para o host remoto ligado ou predefinido.

Soquetes de bloqueio bloqueiam até que todos os bytes do buffer sejam enviados. Como um não-bloqueante Socket conclui imediatamente, pode não enviar todos os bytes no buffer. É responsabilidade da sua aplicação acompanhar o número de bytes enviados e tentar novamente a operação até que a aplicação envie todos os bytes no buffer. Também não há garantia de que os dados que envia apareçam imediatamente na rede. Para aumentar a eficiência da rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados de saída seja recolhida. A conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar os seus dados para um envio em rede.

Se estiver a usar um protocolo sem ligação em modo de bloqueio, SendTo irá bloquear até o datagrama ser enviado. Se quiser enviar dados para um endereço de broadcast, deve primeiro chamar o SetSocketOption método e definir a opção socket para SocketOptionName.Broadcast. Deve também garantir que o número de bytes enviados não ultrapassa o tamanho máximo do pacote do fornecedor de serviço subjacente. Se o fizer, o datagrama não será enviado e SendTo irá lançar um SocketException.

Note

Se receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico. Depois de obter este código, consulte a documentação do código de erro da API Windows versão 2 dos Sockets para uma descrição detalhada do erro.

Note

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para mais informações, consulte Network Tracing in .NET Framework.

Ver também

Aplica-se a

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs
Origem:
Socket.cs

Envia dados para um endpoint específico usando o 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>

Um intervalo de bytes que contém os dados a enviar.

socketFlags
SocketFlags

Uma combinação bit a bit dos SocketFlags valores.

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Devoluções

O número de bytes enviados.

Exceções

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Aplica-se a