Ler em inglês

Partilhar via


Socket.EndReceive Método

Definição

Encerra uma leitura assíncrona pendente.

Sobrecargas

EndReceive(IAsyncResult)

Encerra uma leitura assíncrona pendente.

EndReceive(IAsyncResult, SocketError)

Encerra uma leitura assíncrona pendente.

EndReceive(IAsyncResult)

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

Encerra uma leitura assíncrona pendente.

C#
public int EndReceive(IAsyncResult asyncResult);

Parâmetros

asyncResult
IAsyncResult

Um IAsyncResult que armazena informações de estado e dados definidos pelo usuário para essa operação assíncrona.

Retornos

O número de bytes recebidos.

Exceções

asyncResult é null.

asyncResult não foi retornado por uma chamada ao método BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).

O EndReceive(IAsyncResult) foi chamado anteriormente para a leitura assíncrona.

Ocorreu um erro ao tentar acessar o soquete.

- ou -

Somente .NET 7+: o Socket foi fechado.

somente .NET Framework, .NET Core e .NET 5-6: 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 Taskequivalentes baseados em .

EndReceive conclui a operação iniciada por BeginReceive. Você precisa passar o IAsyncResult criado pela chamada correspondente BeginReceive .

O EndReceive método será bloqueado até que os dados sejam disponibilizados. Se você estiver usando um protocolo sem conexão, EndReceive lerá o primeiro datagrama enfileirado disponível no buffer de rede de entrada. Se você estiver usando um protocolo orientado a conexão, o EndReceive método lerá o máximo de dados que estiver disponível até o número de bytes especificado no size parâmetro do BeginReceive método . Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o EndReceive método será concluído imediatamente e retornará zero bytes.

Nota

Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.

Nota

Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.

Nota

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

EndReceive(IAsyncResult, SocketError)

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

Encerra uma leitura assíncrona pendente.

C#
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);

Parâmetros

asyncResult
IAsyncResult

Um IAsyncResult que armazena informações de estado e dados definidos pelo usuário para essa operação assíncrona.

errorCode
SocketError

Um objeto SocketError que armazena o erro de soquete.

Retornos

O número de bytes recebidos.

Exceções

asyncResult é null.

asyncResult não foi retornado por uma chamada ao método BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).

O EndReceive(IAsyncResult) foi chamado anteriormente para a leitura assíncrona.

Ocorreu um erro ao tentar acessar o soquete.

- ou -

Somente .NET 7+: o Socket foi fechado.

somente .NET Framework, .NET Core e .NET 5-6: 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 Taskequivalentes baseados em .

EndReceive conclui a operação iniciada por BeginReceive. Você precisa passar o IAsyncResult criado pela chamada correspondente BeginReceive .

O EndReceive método será bloqueado até que os dados sejam disponibilizados. Se você estiver usando um protocolo sem conexão, EndReceive lerá o primeiro datagrama enfileirado disponível no buffer de rede de entrada. Se você estiver usando um protocolo orientado a conexão, o EndReceive método lerá o máximo de dados que estiver disponível até o número de bytes especificado no size parâmetro do BeginReceive método . Se o host remoto desligar a Socket conexão com o Shutdown método e todos os dados disponíveis tiverem sido recebidos, o EndReceive método será concluído imediatamente e retornará zero bytes.

Nota

Se você receber um SocketException, use a SocketException.ErrorCode propriedade para obter o código de erro específico.

Nota

Todas as E/S iniciadas por um determinado thread são canceladas quando esse thread é encerrado. Uma operação assíncrona pendente poderá falhar se o thread for encerrado antes da conclusão da operação.

Nota

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

.NET 9 e outras versões
Produto Versões
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1