Socket.BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) Método

Definição

Inicia o recebimento de forma assíncrona do número especificado de bytes de dados no local especificado do buffer de dados, usando o SocketFlags especificado e armazena as informações de ponto de extremidade e de pacote.Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Parâmetros

buffer
Byte[]

Uma matriz do tipo Byte que é o local de armazenamento dos dados recebidos.An array of type Byte that is the storage location for the received data.

offset
Int32

A posição de base zero no parâmetro buffer no qual armazenar os dados.The zero-based position in the buffer parameter at which to store the data.

size
Int32

O número de bytes a serem recebidos.The number of bytes to receive.

socketFlags
SocketFlags

Uma combinação bit a bit dos valores SocketFlags.A bitwise combination of the SocketFlags values.

remoteEP
EndPoint

Um EndPoint que representa a fonte de dados.An EndPoint that represents the source of the data.

callback
AsyncCallback

O delegado AsyncCallback.The AsyncCallback delegate.

state
Object

Um objeto que contém informações de estado para essa solicitação.An object that contains state information for this request.

Retornos

IAsyncResult

Um IAsyncResult que faz referência à leitura assíncrona.An IAsyncResult that references the asynchronous read.

Exceções

buffer é null.buffer is null.

- ou --or- remoteEP é null.remoteEP is null.

Ocorreu um erro ao tentar acessar o soquete.An error occurred when attempting to access the socket.

offset é menor que 0.offset is less than 0.

- ou --or- offset é maior que o comprimento do buffer.offset is greater than the length of buffer.

- ou --or- size é menor que 0.size is less than 0.

- ou --or- size é maior que o comprimento da subtração de buffer e do valor do parâmetro offset.size is greater than the length of buffer minus the value of the offset parameter.

O Socket foi fechado.The Socket has been closed.

Comentários

A operação de recebimento assíncrono deve ser concluída chamando o EndReceiveMessageFrom método.The asynchronous receive operation must be completed by calling the EndReceiveMessageFrom method. Normalmente, o método é invocado pelo asyncCallback delegado.Typically, the method is invoked by the asyncCallback delegate.

Esse método não é bloqueado até que a operação seja concluída.This method does not block until the operation completes. Para bloquear até que a operação seja concluída, use o ReceiveMessageFrom método.To block until the operation completes, use the ReceiveMessageFrom method.

Para cancelar um pendente BeginReceiveMessageFrom , chame o Close método.To cancel a pending BeginReceiveMessageFrom, call the Close method.

Para obter informações detalhadas sobre como usar o modelo de programação assíncrona, consulte chamando métodos síncronos de forma assíncronaFor detailed information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously

Esse método lê dados no buffer parâmetro e captura o ponto de extremidade do host remoto do qual os dados são enviados, bem como informações sobre o pacote recebido.This method reads data into the buffer parameter, and captures the remote host endpoint from which the data is sent, as well as information about the received packet. Para obter informações sobre como recuperar esse ponto de extremidade, consulte EndReceiveFrom .For information on how to retrieve this endpoint, refer to EndReceiveFrom. Esse método é mais útil se você pretende receber de forma assíncrona datagramas sem conexão de um host desconhecido ou vários hosts.This method is most useful if you intend to asynchronously receive connectionless datagrams from an unknown host or multiple hosts.

Observação

Se você receber um SocketException , use a SocketException.ErrorCode propriedade para obter o código de erro específico.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. 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.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Observação

Esse membro emite o rastreamento de informações quando você ativa o rastreamento de rede em seu aplicativo.This member outputs trace information when you enable network tracing in your application. Para obter mais informações, consulte rastreamento de rede na .NET Framework.For more information, see Network Tracing in the .NET Framework.

Observação

O contexto de execução (o contexto de segurança, o usuário representado e o contexto de chamada) é armazenado em cache para os métodos assíncronos Socket .The execution context (the security context, the impersonated user, and the calling context) is cached for the asynchronous Socket methods. Após o primeiro uso de um contexto específico (um método assíncrono específico Socket , uma Socket instância específica e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria no desempenho.After the first use of a particular context (a specific asynchronous Socket method, a specific Socket instance, and a specific callback), subsequent uses of that context will see a performance improvement.

Aplica-se a