Socket.BeginReceiveMessageFrom 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í.
Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el especificado SocketFlagsy almacena el punto de conexión y la información del paquete.
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
Posición de base cero en el parámetro en el buffer que se van a almacenar los datos.
- size
- Int32
Número de bytes que se van a recibir.
- socketFlags
- SocketFlags
Combinación bit a bit de los SocketFlags valores.
- remoteEP
- EndPoint
Referencia a un EndPoint de tipo del mismo tipo que el punto de conexión del host remoto que se va a actualizar al recibir sincrónicamente.
- callback
- AsyncCallback
Delegado AsyncCallback .
- state
- Object
Objeto que contiene información de estado para esta solicitud.
Devoluciones
que IAsyncResult hace referencia a la lectura asincrónica.
Excepciones
.NET Framework y .NET 5 y versiones anteriores solo: se produjo un error al intentar acceder al socket.
offset es menor que 0.
O bien
offset es mayor que la longitud de buffer.
O bien
size es menor que 0.
O bien
size es mayor que la longitud de buffer menos el valor del offset parámetro.
Se Socket ha cerrado.
Comentarios
Importante
Se trata de una API de compatibilidad. No se recomienda usar los métodos APM (Begin* y End*) para el nuevo desarrollo. En su lugar, use los Taskequivalentes basados en .
Puede pasar una devolución de llamada que se AsyncCallbackBeginReceiveMessageFrom implemente en para recibir una notificación sobre la finalización de la operación. Tenga en cuenta que si la pila de red subyacente completa la operación de forma sincrónica, la devolución de llamada se ejecutará en línea, durante la llamada a BeginReceiveMessageFrom. En este caso, la CompletedSynchronously propiedad del devuelto IAsyncResult se establecerá en true para indicar que el método se completó sincrónicamente. Utilice la AsyncState propiedad de para obtener el objeto de IAsyncResult estado pasado al BeginReceiveMessageFrom método .
La operación asincrónica BeginReceiveMessageFrom debe completarse llamando al EndReceiveMessageFrom método . Normalmente, el delegado invoca el AsyncCallback método . EndReceiveMessageFrom bloqueará el subproceso que realiza la llamada hasta que se complete la operación.
Para cancelar un pendiente BeginReceiveMessageFrom, llame al Close método .
Este método lee los datos en el buffer parámetro y captura el punto de conexión del host remoto desde el que se envían los datos, así como información sobre el paquete recibido. Para obtener información sobre cómo recuperar este punto de conexión, consulte EndReceiveMessageFrom. Este método es más útil si piensa recibir de forma asincrónica datagramas sin conexión de un host desconocido o varios hosts.
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 al habilitar el seguimiento de red en la aplicación. Para obtener más información, consulte Seguimiento de red en .NET Framework.
Nota:
El contexto de ejecución (el contexto de seguridad, el usuario suplantado y el contexto de llamada) se almacena en caché para los métodos asincrónicos Socket . Después del primer uso de un contexto determinado (un método asincrónico Socket específico, una instancia específica Socket y una devolución de llamada específica), los usos posteriores de ese contexto verán una mejora del rendimiento.