Partilhar via


Socket.SendTo Método

Definição

Envia dados para um ponto de extremidade específico.

Sobrecargas

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

Envia o número especificado de bytes de dados para o ponto de extremidade especificado, começando no local especificado no buffer e usando o especificado SocketFlags.

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

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

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

Envia dados para um ponto de extremidade específico usando o especificado SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Envia dados para o ponto de extremidade especificado.

SendTo(Byte[], SocketFlags, EndPoint)

Envia dados para um ponto de extremidade específico usando o especificado SocketFlags.

SendTo(Byte[], EndPoint)

Envia dados para o ponto de extremidade especificado.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Envia dados para um ponto de extremidade 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 ponto de extremidade especificado, começando no local especificado no buffer e usando o 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[]

Uma matriz de tipo Byte que contém os dados a serem enviados.

offset
Int32

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

size
Int32

O número de bytes a serem enviados.

socketFlags
SocketFlags

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

remoteEP
EndPoint

O EndPoint que representa o local de destino dos dados.

Retornos

O número de bytes enviados.

Exceções

buffer é null.

- ou -

remoteEP é null.

offset é menor que 0.

- ou -

offset é maior que o comprimento de buffer.

- ou -

size é menor que 0.

- ou -

size é maior 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 operacional ao acessar o Socket.

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

Exemplos

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

Comentários

Nessa sobrecarga, se você especificar o DontRoute sinalizador como o socketflags parâmetro, os dados que você está enviando não serão roteado.

Se você estiver usando um protocolo sem conexão, não precisará estabelecer um host remoto padrão com o Connect método antes de chamar SendTo. Você só precisa fazer isso se pretende chamar o Send método. Se você chamar o Connect método antes da chamada SendTo, o remoteEP parâmetro substituirá o host remoto padrão especificado apenas para essa operação de envio. Você também não é obrigado a chamar o Bind método, pois o provedor de serviços subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se você precisar identificar o endereço de rede local atribuído e o número da porta, poderá usar a LocalEndPoint propriedade depois que o SendTo método for concluído com êxito.

Embora pretenda protocolos sem conexão, SendTo também funciona com protocolos orientados a conexão. Se você estiver usando um protocolo orientado à conexão, primeiro deverá estabelecer uma conexão de host remoto chamando o Connect método ou aceitando uma solicitação de conexão de entrada usando o Accept método. Se você não estabelecer ou aceitar uma conexão de host remoto, SendTo gerará um SocketException. Você também pode estabelecer um host remoto padrão para um protocolo sem conexão antes de chamar o SendTo método. Em qualquer um desses casos, SendTo ignorará o remoteEP parâmetro e enviará apenas dados para o host remoto conectado ou padrão.

Os soquetes de bloqueio serão bloqueados até que o número solicitado de bytes seja enviado. Como um não bloqueio Socket é concluído imediatamente, ele pode não enviar todos os bytes solicitados em uma única operação. É responsabilidade de seus aplicativos controlar o número de bytes enviados e repetir a operação até que o aplicativo envie o número solicitado de bytes. Também não há nenhuma garantia de que os dados enviados serão exibidos na rede imediatamente. Para aumentar a eficiência de rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados pendentes seja coletada. Uma conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar em buffer seus dados para um envio de rede.

Se você estiver usando um protocolo sem conexão no modo de bloqueio, SendTo será bloqueado até que o datagram seja enviado. Se você quiser enviar dados para um endereço de transmissão, primeiro chame o SetSocketOption método e defina a opção de soquete como SocketOptionName.Broadcast. Você também deve ter certeza de que o tamanho não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e SendTo gerará um SocketException.

Observação

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

Observação

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.

Confira 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 ponto de extremidade especificado usando o 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[]

Uma matriz de tipo Byte que contém os dados a serem enviados.

size
Int32

O número de bytes a serem enviados.

socketFlags
SocketFlags

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

remoteEP
EndPoint

O EndPoint que representa o local de destino dos dados.

Retornos

O número de bytes enviados.

Exceções

buffer é null.

- ou -

remoteEP é null.

O especificado size excede o tamanho de buffer.

Erro ao tentar acessar o soquete.

Exemplos

O exemplo de código a seguir envia um datagrama sem conexã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

Comentários

Nessa sobrecarga, o deslocamento de buffer usa como padrão 0. Se você especificar o DontRoute sinalizador como o socketflags parâmetro, os dados que você está enviando não serão roteado.

Se você estiver usando um protocolo sem conexão, não precisará estabelecer um host remoto padrão com o Connect método antes de chamar SendTo. Você só precisa fazer isso se pretende chamar o Send método. Se você chamar o Connect método antes da chamada SendTo, o remoteEP parâmetro substituirá o host remoto padrão especificado apenas para essa operação de envio. Você também não é obrigado a chamar o Bind método, pois o provedor de serviços subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se você precisar identificar o endereço de rede local atribuído e o número da porta, poderá usar a LocalEndPoint propriedade depois que o SendTo método for concluído com êxito.

Embora pretenda protocolos sem conexão, SendTo também funciona com protocolos orientados a conexão. Se você estiver usando um protocolo orientado à conexão, primeiro deverá estabelecer uma conexão de host remoto chamando o Connect método ou aceitando uma solicitação de conexão de entrada usando o Accept método. Se você não estabelecer ou aceitar uma conexão de host remoto, SendTo gerará um SocketException. Você também pode estabelecer um host remoto padrão para um protocolo sem conexão antes de chamar o SendTo método. Em qualquer um desses casos, SendTo ignorará o remoteEP parâmetro e enviará apenas dados para o host remoto conectado ou padrão.

Os soquetes de bloqueio serão bloqueados até que o número solicitado de bytes seja enviado. Como um não desbloqueio Socket é concluído imediatamente, ele pode não enviar todos os bytes solicitados em uma única operação. É responsabilidade do aplicativo controlar o número de bytes enviados e repetir a operação até que o aplicativo envie o número solicitado de bytes. Também não há nenhuma garantia de que os dados enviados serão exibidos na rede imediatamente. Para aumentar a eficiência de rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados pendentes seja coletada. Uma conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar em buffer seus dados para um envio de rede.

Se você estiver usando um protocolo sem conexão no modo de bloqueio, SendTo será bloqueado até que o datagram seja enviado. Se você quiser enviar dados para um endereço de transmissão, primeiro chame o SetSocketOption método e defina a opção de soquete como SocketOptionName.Broadcast. Você também deve ter certeza de que o número de bytes enviados não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e SendTo gerará um SocketException.

Observação

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

Observação

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.

Confira 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 ponto de extremidade 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 serem enviados.

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.

Retornos

O número de bytes enviados.

Exceções

socketAddress é null.

Erro ao tentar acessar o soquete.

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 ponto de extremidade 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 serem enviados.

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Retornos

O número de bytes enviados.

Exceções

remoteEP é null.

Erro ao tentar acessar o soquete.

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 ponto de extremidade 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[]

Uma matriz de tipo Byte que contém os dados a serem enviados.

socketFlags
SocketFlags

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

remoteEP
EndPoint

O EndPoint que representa o local de destino dos dados.

Retornos

O número de bytes enviados.

Exceções

buffer é null.

- ou -

remoteEP é null.

Erro ao tentar acessar o soquete.

Exemplos

O exemplo de código a seguir envia um datagrama sem conexã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

Comentários

Nessa sobrecarga, o deslocamento de buffer usa como padrão 0 e o número de bytes para enviar padrões para o tamanho do buffer. Se você especificar o DontRoute sinalizador como o socketflags parâmetro, os dados que você está enviando não serão roteado.

Se você estiver usando um protocolo sem conexão, não precisará estabelecer um host remoto padrão com o Connect método antes de chamar SendTo. Você só precisa fazer isso se pretende chamar o Send método. Se você chamar o Connect método antes da chamada SendTo, o remoteEP parâmetro substituirá o host remoto padrão especificado apenas para essa operação de envio. Você também não é obrigado a chamar o Bind método, pois o provedor de serviços subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se você precisar identificar o endereço de rede local atribuído e o número da porta, poderá usar a LocalEndPoint propriedade depois que o SendTo método for concluído com êxito.

Embora pretenda protocolos sem conexão, SendTo também funciona com protocolos orientados a conexão. Se você estiver usando um protocolo orientado à conexão, primeiro deverá estabelecer uma conexão de host remoto chamando o Connect método ou aceitando uma solicitação de conexão de entrada usando o Accept método. Se você não estabelecer ou aceitar uma conexão de host remoto, SendTo gerará um SocketException. Você também pode estabelecer um host remoto padrão para um protocolo sem conexão antes de chamar o SendTo método. Em qualquer um desses casos, SendTo ignorará o remoteEP parâmetro e enviará apenas dados para o host remoto conectado ou padrão.

Os soquetes de bloqueio serão bloqueados até que todos os bytes solicitados sejam buffer enviados. Como um não desbloqueio Socket é concluído imediatamente, ele pode não enviar todos os bytes no buffer. É responsabilidade do aplicativo controlar o número de bytes enviados e repetir a operação até que o aplicativo envie todos os bytes no buffer. Também não há nenhuma garantia de que os dados enviados serão exibidos na rede imediatamente. Para aumentar a eficiência de rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados pendentes seja coletada. Uma conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar em buffer seus dados para um envio de rede.

Se você estiver usando um protocolo sem conexão no modo de bloqueio, SendTo será bloqueado até que o datagram seja enviado. Se você quiser enviar dados para um endereço de transmissão, primeiro chame o SetSocketOption método e defina a opção de soquete como SocketOptionName.Broadcast. Você também deve ter certeza de que o número de bytes enviados não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e SendTo gerará um SocketException.

Observação

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

Observação

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.

Confira 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 ponto de extremidade 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[]

Uma matriz de tipo Byte que contém os dados a serem enviados.

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Retornos

O número de bytes enviados.

Exceções

buffer é null.

- ou -

remoteEP é null.

Erro ao tentar acessar o soquete.

Exemplos

O exemplo de código a seguir envia um datagrama sem conexã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

Comentários

Nessa sobrecarga, o deslocamento de buffer usa como padrão 0, o número de bytes para enviar padrões para o tamanho do buffer parâmetro e o SocketFlags valor é padrão como 0.

Se você estiver usando um protocolo sem conexão, não precisará estabelecer um host remoto padrão com o Connect método antes de chamar SendTo. Você só precisa fazer isso se pretende chamar o Send método. Se você chamar o Connect método antes da chamada SendTo, o remoteEP parâmetro substituirá o host remoto padrão especificado apenas para essa operação de envio. Você também não é obrigado a chamar o Bind método, pois o provedor de serviços subjacente atribuirá o endereço de rede local e o número de porta mais apropriados. Se você precisar identificar o endereço de rede local atribuído e o número da porta, poderá usar a LocalEndPoint propriedade depois que o SendTo método for concluído com êxito.

Embora pretenda protocolos sem conexão, SendTo também funciona com protocolos orientados a conexão. Se você estiver usando um protocolo orientado à conexão, primeiro deverá estabelecer uma conexão de host remoto chamando o Connect método ou aceitando uma solicitação de conexão de entrada usando o Accept método. Se você não estabelecer ou aceitar uma conexão de host remoto, SendTo gerará um SocketException. Você também pode estabelecer um host remoto padrão para um protocolo sem conexão antes de chamar o SendTo método. Em qualquer um desses casos, SendTo ignorará o remoteEP parâmetro e enviará apenas dados para o host remoto conectado ou padrão.

Os soquetes de bloqueio serão bloqueados até que todos os bytes no buffer sejam enviados. Como um não desbloqueio Socket é concluído imediatamente, ele pode não enviar todos os bytes no buffer. É responsabilidade do aplicativo controlar o número de bytes enviados e repetir a operação até que o aplicativo envie todos os bytes no buffer. Também não há nenhuma garantia de que os dados enviados serão exibidos na rede imediatamente. Para aumentar a eficiência de rede, o sistema subjacente pode atrasar a transmissão até que uma quantidade significativa de dados de saída seja coletada. Uma conclusão bem-sucedida do SendTo método significa que o sistema subjacente teve espaço para armazenar em buffer seus dados para um envio de rede.

Se você estiver usando um protocolo sem conexão no modo de bloqueio, SendTo será bloqueado até que o datagram seja enviado. Se você quiser enviar dados para um endereço de transmissão, primeiro chame o SetSocketOption método e defina a opção de soquete como SocketOptionName.Broadcast. Você também deve ter certeza de que o número de bytes enviados não excede o tamanho máximo do pacote do provedor de serviços subjacente. Se isso acontecer, o datagrama não será enviado e SendTo gerará um SocketException.

Observação

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

Observação

Esse membro gera informações de rastreamento quando você habilita o rastreamento de rede em seu aplicativo. Para obter mais informações, consulte Rastreamento de Rede no .NET Framework.

Confira 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 ponto de extremidade 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 serem enviados.

socketFlags
SocketFlags

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

remoteEP
EndPoint

O EndPoint que representa o destino dos dados.

Retornos

O número de bytes enviados.

Exceções

remoteEP é null.

Erro ao tentar acessar o soquete.

Aplica-se a