Socket.EndReceive Método
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.
Encerra uma leitura assíncrona pendente.
EndReceive(IAsyncResult) |
Encerra uma leitura assíncrona pendente. |
EndReceive(IAsyncResult, SocketError) |
Encerra uma leitura assíncrona pendente. |
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Encerra uma leitura assíncrona pendente.
public:
int EndReceive(IAsyncResult ^ asyncResult);
public int EndReceive(IAsyncResult asyncResult);
member this.EndReceive : IAsyncResult -> int
Public Function EndReceive (asyncResult As IAsyncResult) As Integer
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.
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 Task
equivalentes 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
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
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 |
- Origem:
- Socket.cs
- Origem:
- Socket.cs
- Origem:
- Socket.cs
Encerra uma leitura assíncrona pendente.
public:
int EndReceive(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndReceive(IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndReceive : IAsyncResult * SocketError -> int
Public Function EndReceive (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer
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.
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 Task
equivalentes 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
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
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 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: