Socket.EndReceiveFrom(IAsyncResult, EndPoint) 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 desde un extremo específico.
public:
int EndReceiveFrom(IAsyncResult ^ asyncResult, System::Net::EndPoint ^ % endPoint);
public int EndReceiveFrom (IAsyncResult asyncResult, ref System.Net.EndPoint endPoint);
member this.EndReceiveFrom : IAsyncResult * EndPoint -> int
Public Function EndReceiveFrom (asyncResult As IAsyncResult, ByRef endPoint As EndPoint) 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
Si se realiza correctamente, el número de bytes recibidos. Si no se realiza correctamente, devuelve 0.
Excepciones
asyncResult
es null
.
asyncResult
no se devolvió mediante una llamada al método BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object).
Se llamó previamente a EndReceiveFrom(IAsyncResult, EndPoint) 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 .
EndReceiveFrom completa la operación iniciada por BeginReceiveFrom. Debe pasar el IAsyncResult creado por la llamada coincidente BeginReceiveFrom .
El EndReceiveFrom método se bloqueará hasta que los datos estén disponibles. Si usa un protocolo sin conexión, EndReceiveFrom leerá el primer datagrama en cola disponible en el búfer de red entrante. Si usa un protocolo orientado a la conexión, el EndReceiveFrom método leerá tantos datos como estén disponibles hasta el número de bytes especificados en el size
parámetro del BeginReceiveFrom 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 EndReceiveFrom método se completará inmediatamente y devolverá cero bytes. Para obtener los datos recibidos, llame al AsyncState método del IAsyncResult objeto y extraiga el búfer contenido en el objeto de estado resultante. Para identificar el host de origen, extraiga y EndPoint consértelo en .IPEndPoint Use el IPEndPoint.Address método para obtener la dirección IP y el IPEndPoint.Port método para obtener el número de puerto.
Nota
Si recibe un SocketException, use la SocketException.ErrorCode propiedad para obtener el código de error específico.
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, vea Seguimiento de red en .NET Framework.