Partilhar via


Socket.ReceiveMessageFrom Método

Definição

Sobrecargas

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Recebe o número de bytes de dados no local especificado no buffer de dados usando o SocketFlags especificado e armazena as informações de ponto de extremidade e pacote.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Recebe o número de bytes de dados no local especificado no buffer de dados usando o socketFlags especificado e armazena as informações de ponto de extremidade e pacote.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

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

Recebe o número de bytes de dados no local especificado no buffer de dados usando o SocketFlags especificado e armazena as informações de ponto de extremidade e pacote.

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

Parâmetros

buffer
Byte[]

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.

offset
Int32

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

size
Int32

O número de bytes a serem recebidos.

socketFlags
SocketFlags

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

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o ponto de extremidade do host remoto a ser atualizado no recebimento bem-sucedido.

ipPacketInformation
IPPacketInformation

Um IPPacketInformation que contém informações de endereço e de interface.

Retornos

O número de bytes recebidos.

Exceções

buffer é null.

- ou -

remoteEP é null.

offset é menor que 0.

- ou -

offset é maior que o comprimento do buffer.

- ou -

size é menor que 0.

- ou -

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

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

- ou -

A propriedade LocalEndPoint não foi definida.

- ou -

O .NET Framework está em execução em um processador AMD 64 bits.

- ou -

Ocorreu um erro ao tentar acessar o soquete.

Comentários

O ReceiveMessageFrom método lê dados no buffer parâmetro , retorna o número de bytes lidos com êxito e captura o ponto de extremidade do host remoto do qual os dados foram enviados, bem como informações sobre o pacote recebido.

O ReceiveMessageFrom método é usado principalmente para receber dados de mensagem em um soquete sem conexão. O endereço local do soquete deve ser conhecido. Esse método só pode ser usado com datagram e soquetes brutos. O soquete deve ser inicializado com o tipo de soquete definido como Dgram ou Raw antes de chamar esse método. Isso pode ser feito quando o soquete é construído usando Socket.

Para soquetes orientados a mensagens, uma mensagem de entrada é colocada no buffer parâmetro até o tamanho total especificado no size parâmetro . O offset parâmetro determina onde os buffer dados são colocados. A quantidade real de dados colocados no buffer é retornada pelo ReceiveMessageFrom método .

O ReceiveMessageFrom método define automaticamente a opção de PacketInformation soquete como true a primeira vez que é chamado para um determinado Socket. No entanto, o objeto retornado IPPacketInformation só será válido para pacotes que chegam ao computador local depois que a opção de soquete tiver sido definida. Se um soquete for enviado entre quando estiver associado a um ponto de extremidade local (explicitamente pelo Bind método ou implicitamente por um dos Connectmétodos , ConnectAsync, SendToou SendToAsync ) e sua primeira chamada ao método, as ReceiveMessageFrom chamadas ao ReceiveMessageFrom método retornarão objetos inválidos IPPacketInformation para esses pacotes.

Para garantir que todos os IPPacketInformation objetos sejam válidos, um aplicativo deve definir a opção de PacketInformation soquete como true antes de ser associado a um ponto de extremidade local usando o SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método .

Um aplicativo pode examinar o ipPacketInformation parâmetro se precisar saber se o datagrama foi enviado usando um endereço unicast, multicast ou difusão.

Observação

O AddressFamily do EndPoint usado em ReceiveFrom precisa corresponder ao AddressFamily do EndPoint usado em SendTo.

Observação

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

Confira também

Aplica-se a

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

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

Recebe o número de bytes de dados no local especificado no buffer de dados usando o socketFlags especificado e armazena as informações de ponto de extremidade e pacote.

public:
 int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parâmetros

buffer
Span<Byte>

Um Span<T> tipo que é o local de Byte armazenamento para dados recebidos.

socketFlags
SocketFlags

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

remoteEP
EndPoint

Uma referência a um EndPoint do mesmo tipo que o ponto de extremidade do host remoto a ser atualizado no recebimento bem-sucedido.

ipPacketInformation
IPPacketInformation

Um IPPacketInformation que contém informações de endereço e de interface.

Retornos

O número de bytes recebidos.

Exceções

O objeto Socket foi fechado.

O EndPoint remoteEP é null.

O objeto Socket não está no modo de bloqueio e não pode aceitar essa chamada síncrona. Você deve chamar o método Bind antes de executar essa operação.

Aplica-se a