Socket.EndReceive Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Finaliza una lectura asincrónica pendiente.
Sobrecargas
EndReceive(IAsyncResult) |
Finaliza una lectura asincrónica pendiente. |
EndReceive(IAsyncResult, SocketError) |
Finaliza una lectura asincrónica pendiente. |
EndReceive(IAsyncResult)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Finaliza una lectura asincrónica pendiente.
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
IAsyncResult que almacena información de estado así como cualquier dato definido por el usuario para esta operación asincrónica.
Devoluciones
Número de bytes recibidos.
Excepciones
asyncResult
es null
.
asyncResult
no se devolvió mediante una llamada al método BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).
Se llamó previamente a EndReceive(IAsyncResult) para la lectura asincrónica.
Solo .NET Framework, .NET Core y .NET 5-6: Socket se ha cerrado .
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin*
y End*
) para el nuevo desarrollo. En su lugar, use los Task
equivalentes basados en .
EndReceive completa la operación iniciada por BeginReceive. Debe pasar el IAsyncResult objeto creado por la llamada coincidente BeginReceive .
El EndReceive método se bloqueará hasta que los datos estén disponibles. Si usa un protocolo sin conexión, EndReceive leerá el primer datagrama en cola disponible en el búfer de red entrante. Si usa un protocolo orientado a la conexión, el EndReceive método leerá tantos datos como estén disponibles hasta el número de bytes especificados en el size
parámetro del BeginReceive método. Si el host remoto cierra la Socket conexión con el Shutdown método y se han recibido todos los datos disponibles, el EndReceive método se completará inmediatamente y devolverá cero bytes.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota
Todas las E/S iniciadas por un subproceso determinado se cancelan cuando se cierra ese subproceso. Se puede producir un error en una operación asincrónica pendiente si el subproceso sale antes de que se complete la operación.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Consulte también
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)
Se aplica a
EndReceive(IAsyncResult, SocketError)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Finaliza una lectura asincrónica pendiente.
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
IAsyncResult que almacena información de estado así como cualquier dato definido por el usuario para esta operación asincrónica.
- errorCode
- SocketError
Objeto SocketError que almacena el error de socket.
Devoluciones
Número de bytes recibidos.
Excepciones
asyncResult
es null
.
asyncResult
no se devolvió mediante una llamada al método BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).
Se llamó previamente a EndReceive(IAsyncResult) para la lectura asincrónica.
Solo .NET Framework, .NET Core y .NET 5-6: Socket se ha cerrado .
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos de APM (Begin*
y End*
) para el nuevo desarrollo. En su lugar, use los Task
equivalentes basados en .
EndReceive completa la operación iniciada por BeginReceive. Debe pasar el IAsyncResult objeto creado por la llamada coincidente BeginReceive .
El EndReceive método se bloqueará hasta que los datos estén disponibles. Si usa un protocolo sin conexión, EndReceive leerá el primer datagrama en cola disponible en el búfer de red entrante. Si usa un protocolo orientado a la conexión, el EndReceive método leerá tantos datos como estén disponibles hasta el número de bytes especificados en el size
parámetro del BeginReceive método. Si el host remoto cierra la Socket conexión con el Shutdown método y se han recibido todos los datos disponibles, el EndReceive método se completará inmediatamente y devolverá cero bytes.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
Nota
Todas las E/S iniciadas por un subproceso determinado se cancelan cuando se cierra ese subproceso. Se puede producir un error en una operación asincrónica pendiente si el subproceso sale antes de que se complete la operación.
Nota
Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Consulte también
- BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- IAsyncResult
- AsyncState
- Shutdown(SocketShutdown)