Socket.ReceiveMessageFrom Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe o número especificado de bytes de dados na localização especificada do buffer de dados, usando o , e SocketFlagsarmazena a informação do endpoint e do 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 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.
- ipPacketInformation
- IPPacketInformation
Um IPPacketInformation endereço de armazenamento e informações de interface.
Devoluções
O número de bytes recebidos.
Exceções
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-
O .NET Framework está a correr num processador AMD de 64 bits.
-ou-
Ocorreu um erro ao tentar aceder ao soquete.
O Socket local foi encerrado.
Observações
O ReceiveMessageFrom 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, bem como informações sobre o pacote recebido.
O ReceiveMessageFrom método é usado principalmente para receber dados de mensagens num socket sem conexão. O endereço local do socket deve ser conhecido. Este método só pode ser usado com datagramas e sockets brutos. O socket deve ser inicializado com o tipo de socket definido como Dgram ou Raw antes de chamar este método. Isto pode ser feito quando o soquete é construído usando Socket.
Para sockets orientados a mensagens, uma mensagem recebida é colocada no buffer parâmetro até ao tamanho total especificado no size parâmetro. O offset parâmetro determina onde buffer os dados são colocados. A quantidade real de dados inseridos no buffer é devolvida pelo ReceiveMessageFrom método.
O ReceiveMessageFrom método define automaticamente a PacketInformation opção de soquete para true a primeira vez que é chamada para um dado Socket. No entanto, o objeto devolvido IPPacketInformation só será válido para pacotes que chegam ao computador local depois de a opção socket ter sido definida. Se um socket for enviado pacotes entre o momento em que está ligado a um ponto terminal local (explicitamente pelo Bind método ou implicitamente por um dos Connectmétodos , , SendTo, ou por um dos métodos , ConnectAsyncou SendToAsync pela sua primeira chamada ao ReceiveMessageFrom método, as chamadas ao ReceiveMessageFrom método retornarão objetos inválidos IPPacketInformation para esses pacotes.
Para garantir que todos IPPacketInformation os objetos são válidos, uma aplicação deve definir a PacketInformation opção socket para true antes de ser associada a um endpoint local usando o SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método.
Uma aplicação pode examinar o ipPacketInformation parâmetro se precisar de saber se o datagrama foi enviado usando um endereço unicast, multicast ou broadcast.
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.