Socket.BeginReceiveMessageFrom 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.
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.
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
- offset
- Int32
A posição de base zero no parâmetro buffer
no qual armazenar os dados.
- 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 síncrono.
- callback
- AsyncCallback
O delegado AsyncCallback.
- state
- Object
Um objeto que contém informações de estado para essa solicitação.
Retornos
Um IAsyncResult que faz referência à leitura assíncrona.
Exceções
.NET Framework e .NET 5 e somente anteriores: ocorreu um erro ao tentar acessar o soquete.
offset
é menor que 0.
- ou -
offset
é maior que o comprimento do buffer
.
- ou -
size
é menor que 0.
- ou -
size
é maior que o comprimento da subtração de buffer
e do valor do parâmetro offset
.
O Socket foi fechado.
Comentários
Importante
Essa é uma API de compatibilidade. Não recomendamos usar os métodos APM (Begin*
e End*
) para novo desenvolvimento. Em vez disso, use os Task
equivalentes baseados em .
Você pode passar um retorno de chamada que implementa AsyncCallback para BeginReceiveMessageFrom ser notificado sobre a conclusão da operação. Observe que, se a pilha de rede subjacente concluir a operação de forma síncrona, o retorno de chamada será executado embutido durante a chamada para BeginReceiveMessageFrom. Nesse caso, a CompletedSynchronously propriedade no retornado IAsyncResult será definida true
como para indicar que o método foi concluído de forma síncrona. Use a AsyncState propriedade do IAsyncResult para obter o objeto de estado passado para o BeginReceiveMessageFrom método .
A operação assíncrona BeginReceiveMessageFrom deve ser concluída chamando o EndReceiveMessageFrom método . Normalmente, o método é invocado pelo AsyncCallback delegado. EndReceiveMessageFrom bloqueará o thread de chamada até que a operação seja concluída.
Para cancelar um pendente BeginReceiveMessageFrom, chame o Close método .
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. Para obter informações sobre como recuperar esse ponto de extremidade, consulte EndReceiveMessageFrom. Esse método será mais útil se você pretende receber de forma assíncrona datagramas sem conexão de um host desconhecido ou de vários hosts.
Observação
Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.
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.
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 . Após o primeiro uso de um contexto específico (um método assíncrono Socket específico, uma instância específica Socket e um retorno de chamada específico), os usos subsequentes desse contexto verão uma melhoria de desempenho.