Socket.ReceiveMessageFrom Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 |
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
- 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
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.
O Socket foi fechado.
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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 AddressFamily do EndPoint usado em ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) precisa corresponder ao AddressFamily do EndPoint usado em SendTo.
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.