Socket.ReceiveFrom Método

Definição

Recebe um datagrama e armazena o endpoint de origem.

Sobrecargas

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

Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o especificado SocketFlags, e armazena o endpoint.

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

Recebe o número especificado de bytes no data buffer, usando o especificado SocketFlags, e armazena o endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Recebe um datagrama no buffer de dados, usando o especificado SocketFlags, e armazena o endpoint.

ReceiveFrom(Byte[], EndPoint)

Recebe um datagrama no buffer de dados e armazena o endpoint.

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

Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o especificado SocketFlags, e armazena o endpoint.

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

Parâmetros

buffer
Byte[]

Um array de tipo Byte que é o local de armazenamento para os dados recebidos.

offset
Int32

A posição no buffer parâmetro para armazenar os dados recebidos.

size
Int32

O número de bytes a receber.

socketFlags
SocketFlags

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

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o endpoint do host remoto a ser atualizado em caso de receção bem-sucedida.

Devoluções

O número de bytes recebidos.

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 do buffer menos o valor do parâmetro de deslocamento.

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

-ou-

A LocalEndPoint propriedade não estava definida.

-ou-

Ocorreu um erro ao tentar aceder ao soquete.

O Socket local foi encerrado.

Exemplos

O exemplo de código seguinte recebe um datagrama sem ligação de um host remoto. O deslocamento, o tamanho do buffer e SocketFlags são passados para o ReceiveFrom método.

public static void ReceiveFrom4()
{
    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);

    // Creates an IpEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);
    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom4() 
    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)
    
    ' Creates an IpEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks.  
    s.ReceiveFrom(msg, 0, msg.Length, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Observações

O ReceiveFrom método lê dados no buffer parâmetro, devolve o número de bytes lidos com sucesso e captura o endpoint remoto do host de onde os dados foram enviados. Este método é útil se pretende receber datagramas sem ligação de um host desconhecido ou de múltiplos hosts.

Com protocolos sem conexão, ReceiveFrom irá ler o primeiro datagrama enfileirado recebido no buffer de rede local. Se o datagrama que receber for maior do que o tamanho de buffer, o ReceiveFrom método preencherá buffer com o máximo possível da mensagem e lançará um SocketException. Se estiver a usar um protocolo pouco fiável, os dados em excesso serão perdidos. Se estiver a usar um protocolo fiável, os dados excedentes serão retidos pelo fornecedor de serviços e pode recuperá-los chamando o ReceiveFrom método com um buffer suficientemente grande.

Se não houver dados disponíveis para leitura, o ReceiveFrom método bloqueia até que os dados estejam disponíveis. Se estiver em modo não bloqueante, e não houver dados disponíveis no buffer da pilha de protocolos, o ReceiveFrom método será completado imediatamente e lançará um SocketException. Pode usar a Available propriedade para determinar se há dados disponíveis para leitura. Quando Available for diferente de zero, tente novamente a operação de receção.

Embora ReceiveFrom seja destinado a protocolos sem ligação, também pode usar um protocolo orientado à ligação. Se optar por isso, deve primeiro estabelecer uma ligação remota ao host chamando o Connect método ou aceitar uma ligação remota ao host ao chamar o Accept método. Se não estabelecer ou aceitar uma ligação antes de ligar para o ReceiveFrom método, receberá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o ReceiveFrom método.

Com sockets orientados para ligação, ReceiveFrom irá ler tantos dados quanto estiver disponível até ao número de bytes especificado pelo size parâmetro. Se o host remoto desligar a Socket ligação com o Shutdown método e todos os dados disponíveis forem recebidos, o ReceiveFrom método será concluído imediatamente e devolverá zero bytes.

Note

Antes de chamar ReceiveFrom, deve vincular explicitamente o Socket a um endpoint local usando o Bind método. Se não o fizer, ReceiveFrom lançará um SocketException. 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

O AddressFamily do usado em ReceiveFrom precisa de corresponder ao AddressFamily do EndPoint usado em SendToEndPoint .

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

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

Recebe o número especificado de bytes no data buffer, usando o especificado SocketFlags, e armazena o endpoint.

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

Parâmetros

buffer
Byte[]

Um array de tipo Byte que é o local de armazenamento para os dados recebidos.

size
Int32

O número de bytes a receber.

socketFlags
SocketFlags

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

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o endpoint do host remoto a ser atualizado em caso de receção bem-sucedida.

Devoluções

O número de bytes recebidos.

Exceções

buffer é null.

-ou-

remoteEP é null.

size é inferior a 0.

-ou-

size é maior do que o comprimento de buffer.

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

-ou-

A LocalEndPoint propriedade não estava definida.

-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 recebe um datagrama sem ligação de um host remoto. O tamanho do buffer, e SocketFlags são passados para o ReceiveFrom método.

public static void ReceiveFrom3()
{
    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);

    // Creates an IPEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, msg.Length, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom3() 
    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)
    
    ' Creates an IPEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks. 
    s.ReceiveFrom(msg, msg.Length, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Observações

O ReceiveFrom método lê dados no buffer parâmetro, devolve o número de bytes lidos com sucesso e captura o endpoint remoto do host de onde os dados foram enviados. Este método é útil se pretende receber datagramas sem ligação de um host desconhecido ou de múltiplos hosts.

Esta sobrecarga só exige que forneça um buffer de receção, o número de bytes que quer receber, o necessário SocketFlags, e um EndPoint que represente o host remoto. O deslocamento do buffer é 0 por defeito.

Com protocolos sem conexão, ReceiveFrom irá ler o primeiro datagrama enfileirado recebido no buffer de rede local. Se o datagrama que receber for maior do que o tamanho de buffer, o ReceiveFrom método preencherá buffer com o máximo possível da mensagem e lançará um SocketException. Se estiver a usar um protocolo pouco fiável, os dados em excesso serão perdidos. Se estiver a usar um protocolo fiável, os dados excedentes serão retidos pelo fornecedor de serviços e pode recuperá-los chamando o ReceiveFrom método com um buffer suficientemente grande.

Se não houver dados disponíveis para leitura, o ReceiveFrom método bloqueia até que os dados estejam disponíveis. Se estiver em modo não bloqueante, e não houver dados disponíveis no buffer da pilha de protocolos, o ReceiveFrom método será completado imediatamente e lançará um SocketException. Pode usar a Available propriedade para determinar se há dados disponíveis para leitura. Quando Available for diferente de zero, tente novamente a operação de receção.

Embora ReceiveFrom seja destinado a protocolos sem ligação, também pode usar um protocolo orientado à ligação. Se optar por isso, deve primeiro estabelecer uma ligação remota ao host chamando o Connect método ou aceitar uma ligação remota ao host ao chamar o Accept método. Se não estabelecer ou aceitar uma ligação antes de ligar para o ReceiveFrom método, receberá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o ReceiveFrom método.

Com sockets orientados para ligação, ReceiveFrom lê tantos dados quanto estiver disponível até ao número de bytes especificados pelo size parâmetro. Se o host remoto desligar a Socket ligação com o Shutdown método e todos os dados disponíveis forem recebidos, o ReceiveFrom método será concluído imediatamente e retornará zero bytes.

Note

Antes de chamar ReceiveFrom, deve vincular explicitamente o Socket a um endpoint local usando o Bind método. Se não o fizer, ReceiveFrom lançará um SocketException. 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

O AddressFamily do usado em ReceiveFrom precisa de corresponder ao AddressFamily do EndPoint usado em SendToEndPoint .

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

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Recebe um datagrama no buffer de dados, usando o especificado SocketFlags, e armazena o endpoint.

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

Parâmetros

buffer
Byte[]

Um array do tipo Byte que é a localização de armazenamento dos dados recebidos.

socketFlags
SocketFlags

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

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o endpoint do host remoto a ser atualizado em caso de receção bem-sucedida.

Devoluções

O número de bytes recebidos.

Exceções

buffer é null.

-ou-

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

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 recebe um datagrama sem ligação de um host remoto. SocketFlags são passados para o ReceiveFrom método.

public static void ReceiveFrom2()
{
    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);

    // Creates an IpEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");
    // This call blocks.
    s.ReceiveFrom(msg, SocketFlags.None, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom2() 
    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)
    
    ' Creates an IpEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    ' This call blocks. 
    s.ReceiveFrom(msg, SocketFlags.None, senderRemote)
    s.Close()

End Sub

Observações

O ReceiveFrom método lê dados no buffer parâmetro, devolve o número de bytes lidos com sucesso e captura o endpoint remoto do host de onde os dados foram enviados. Este método é útil se pretende receber datagramas sem ligação de um host desconhecido ou de múltiplos hosts.

Esta sobrecarga só exige que forneça um buffer de receção, o necessário SocketFlags, e um EndPoint que represente o host remoto. O offset é 0 por defeito e o tamanho corresponde ao comprimento do parâmetro do buffer.

Note

Antes de chamar ReceiveFrom, deve vincular explicitamente o Socket a um endpoint local usando o Bind método. Se não o fizer, ReceiveFrom lançará um SocketException.

Com protocolos sem conexão, ReceiveFrom irá ler o primeiro datagrama enfileirado recebido no buffer de rede local. Se o datagrama que receber for maior do que o tamanho de buffer, o ReceiveFrom método preencherá buffer com o máximo possível da mensagem e lançará um SocketException. Se estiver a usar um protocolo pouco fiável, os dados em excesso serão perdidos. Se estiver a usar um protocolo fiável, os dados excedentes serão retidos pelo fornecedor de serviços e pode recuperá-los chamando o ReceiveFrom método com um buffer suficientemente grande.

Se não houver dados disponíveis para leitura, o ReceiveFrom método bloqueia até que os dados estejam disponíveis. Se estiver em modo não bloqueante, e não houver dados disponíveis no buffer da pilha de protocolos, o ReceiveFrom método será completado imediatamente e lançará um SocketException. Pode usar a Available propriedade para determinar se há dados disponíveis para leitura. Quando Available for diferente de zero, tente novamente a operação de receção.

Embora ReceiveFrom seja destinado a protocolos sem ligação, também pode usar um protocolo orientado à ligação. Se optar por isso, deve primeiro estabelecer uma ligação remota ao host chamando o Connect método ou aceitar uma ligação remota ao host ao chamar o Accept método. Se não estabelecer ou aceitar uma ligação antes de ligar para o ReceiveFrom método, receberá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o ReceiveFrom método.

Com soquetes orientados à ligação, ReceiveFrom lê tantos dados quanto estiver disponível até ao tamanho de buffer. Se o host remoto desligar a Socket ligação com o Shutdown método e todos os dados disponíveis forem recebidos, o ReceiveFrom método será concluído imediatamente e devolverá zero bytes.

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

O AddressFamily do usado em ReceiveFrom precisa de corresponder ao AddressFamily do EndPoint usado em SendToEndPoint .

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

ReceiveFrom(Byte[], EndPoint)

Recebe um datagrama no buffer de dados e armazena o endpoint.

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

Parâmetros

buffer
Byte[]

Um array de tipo Byte que é o local de armazenamento para os dados recebidos.

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o endpoint do host remoto a ser atualizado em caso de receção bem-sucedida.

Devoluções

O número de bytes recebidos.

Exceções

buffer é null.

-ou-

remoteEP é null.

Ocorreu um erro ao tentar aceder ao soquete.

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 recebe um datagrama sem ligação de um host remoto.

public static void ReceiveFrom1()
{
    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);

    // Creates an IPEndPoint to capture the identity of the sending host.
    IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
    EndPoint senderRemote = (EndPoint)sender;

    // Binding is required with ReceiveFrom calls.
    s.Bind(endPoint);

    byte[] msg = new Byte[256];
    Console.WriteLine("Waiting to receive datagrams from client...");

    // This call blocks.
    s.ReceiveFrom(msg, ref senderRemote);
    s.Close();
}
Public Shared Sub ReceiveFrom1() 
    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)
    
    ' Creates an IPEndPoint to capture the identity of the sending host.
    Dim sender As New IPEndPoint(IPAddress.Any, 0)
    Dim senderRemote As EndPoint = CType(sender, EndPoint)
    
    ' Binding is required with ReceiveFrom calls.
    s.Bind(endPoint)
    
    Dim msg() As Byte = New [Byte](255) {}
    Console.WriteLine("Waiting to receive datagrams from client...")
    
    ' This call blocks. 
    s.ReceiveFrom(msg, senderRemote)
    s.Close()

End Sub

Observações

O ReceiveFrom método lê dados no buffer parâmetro, devolve o número de bytes lidos com sucesso e captura o endpoint remoto do host de onde os dados foram enviados. Este método é útil se pretende receber datagramas sem ligação de um host desconhecido ou de múltiplos hosts.

Esta sobrecarga só exige que forneça um receção buffer, e um EndPoint que represente o host remoto. O deslocamento do buffer é 0 por defeito. O tamanho corresponde por defeito ao comprimento do buffer parâmetro e o socketFlags valor a None.

Note

Antes de chamar ReceiveFrom, deve vincular explicitamente o Socket a um endpoint local usando o Bind método. Se não o fizer, ReceiveFrom lançará um SocketException.

Com protocolos sem conexão, ReceiveFrom irá ler o primeiro datagrama enfileirado recebido no buffer de rede local. Se o datagrama que receber for maior do que o tamanho de buffer, o ReceiveFrom método preencherá buffer com o máximo possível da mensagem e lançará um SocketException. Se estiver a usar um protocolo pouco fiável, os dados em excesso serão perdidos. Se estiver a usar um protocolo fiável, os dados excedentes serão retidos pelo fornecedor de serviços e pode recuperá-los chamando o ReceiveFrom método com um buffer suficientemente grande.

Se não houver dados disponíveis para leitura, o ReceiveFrom método bloqueia até que os dados estejam disponíveis. Se estiver em modo não bloqueante, e não houver dados disponíveis no buffer da pilha de protocolos, o ReceiveFrom método será completado imediatamente e lançará um SocketException. Pode usar a Available propriedade para determinar se há dados disponíveis para leitura. Quando Available for diferente de zero, tente novamente a operação de receção.

Embora ReceiveFrom seja destinado a protocolos sem ligação, também pode usar um protocolo orientado à ligação. Se optar por isso, deve primeiro estabelecer uma ligação remota ao host chamando o Connect método ou aceitar uma ligação remota ao host ao chamar o Accept método. Se não estabelecer ou aceitar uma ligação antes de ligar para o ReceiveFrom método, receberá um SocketException. Também pode estabelecer um host remoto predefinido para um protocolo sem ligação antes de chamar o ReceiveFrom método.

Com soquetes orientados à ligação, ReceiveFrom lê tantos dados quanto estiver disponível até ao tamanho de buffer. Se o host remoto desligar a Socket ligação com o Shutdown método e todos os dados disponíveis forem recebidos, o ReceiveFrom método será concluído imediatamente e retornará zero bytes.

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

O AddressFamily do usado em ReceiveFrom precisa de corresponder ao AddressFamily do EndPoint usado em SendToEndPoint .

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