Socket.ReceiveMessageFromAsync 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í.
Sobrecargas
| Nombre | Description |
|---|---|
| ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación especificada en el búfer de datos, mediante el especificado SocketFlagsy almacena el punto de conexión y la información del paquete. |
| ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint) |
Recibe datos y devuelve información adicional sobre el remitente del mensaje. |
| ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Recibe datos y devuelve información adicional sobre el remitente del mensaje. |
| ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken) |
Recibe datos y devuelve información adicional sobre el remitente del mensaje. |
| ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Recibe datos y devuelve información adicional sobre el remitente del mensaje. |
ReceiveMessageFromAsync(SocketAsyncEventArgs)
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
- Source:
- Socket.cs
Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación especificada en el búfer de datos, mediante el especificado SocketFlagsy almacena el punto de conexión y la información del paquete.
public:
bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (e As SocketAsyncEventArgs) As Boolean
Parámetros
Objeto SocketAsyncEventArgs que se va a usar para esta operación de socket asincrónico.
Devoluciones
true si la operación de E/S está pendiente. El Completed evento en el e parámetro se generará tras la finalización de la operación.
false si la operación de E/S se completó sincrónicamente. En este caso, Completed no se generará el evento en el e parámetro y el e objeto pasado como parámetro se puede examinar inmediatamente después de que la llamada al método devuelva para recuperar el resultado de la operación.
Excepciones
no RemoteEndPoint puede ser NULL.
Se Socket ha cerrado.
Error al intentar acceder al socket.
Comentarios
El ReceiveMessageFromAsync método se usa principalmente para recibir datos de mensajes en un socket sin conexión. La dirección local del socket debe conocerse. Este método solo se puede usar con datagramas y sockets sin formato. El socket debe inicializarse con el tipo de socket establecido Dgram en o Raw antes de llamar a este método. Esto se puede hacer cuando el socket se construye mediante Socket.
El autor de la llamada debe establecer la SocketAsyncEventArgs.RemoteEndPoint propiedad en un EndPoint de tipo del mismo tipo que el punto de conexión del host remoto. La propiedad se actualizará al recibir correctamente el punto de conexión remoto real.
Se requieren las siguientes propiedades y eventos en el System.Net.Sockets.SocketAsyncEventArgs objeto para llamar correctamente a este método:
El autor de la llamada puede establecer la SocketAsyncEventArgs.UserToken propiedad en cualquier objeto de estado de usuario deseado antes de llamar al ReceiveMessageFromAsync método , de modo que la información se pueda recuperar en el método de devolución de llamada. Si la devolución de llamada necesita más información que un único objeto, se puede crear una clase pequeña para contener la otra información de estado necesaria como miembros.
En el caso de los sockets orientados a mensajes, un mensaje entrante se coloca en el búfer hasta el tamaño total del búfer. Las SocketAsyncEventArgs.Count propiedades y SocketAsyncEventArgs.Offset determinan dónde se colocan los datos en el búfer y la cantidad de datos.
El ReceiveMessageFromAsync método establece automáticamente la PacketInformation opción de socket a true la primera vez que se llama para un determinado Socket. Sin embargo, el IPPacketInformation objeto solo será válido para los paquetes que llegan al equipo local después de establecer la opción de socket. Si un socket se envía paquetes entre cuando el socket está enlazado a un punto de conexión local (explícitamente por el Bind método o implícitamente por uno de los Connectmétodos , ConnectAsync, SendToo SendToAsync ) y la primera llamada al método , las llamadas al ReceiveMessageFromAsync método darán lugar a ReceiveMessageFromAsync objetos no válidos IPPacketInformation para estos paquetes.
Para asegurarse de que todos los IPPacketInformation objetos son válidos, una aplicación debe establecer la PacketInformation opción de socket entrue antes de enlazarla a un punto de conexión local mediante el SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método .
Una aplicación puede examinar los objetos resultantes IPPacketInformation si necesita saber si el datagrama se envió mediante una dirección de unidifusión, multidifusión o difusión.
Consulte también
Se aplica a
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Recibe datos y devuelve información adicional sobre el remitente del mensaje.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
Parámetros
- buffer
- ArraySegment<Byte>
Búfer de los datos recibidos.
- remoteEndPoint
- EndPoint
Un punto de conexión del mismo tipo que el punto de conexión del host remoto.
Devoluciones
Una tarea asincrónica que se completa con un SocketReceiveMessageFromResult que contiene el número de bytes recibidos e información adicional sobre el host de envío.
Excepciones
El Socket objeto se ha cerrado.
remoteEndPoint es null.
Debe llamar al método Bind antes de realizar esta operación.
Se aplica a
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Recibe datos y devuelve información adicional sobre el remitente del mensaje.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
Parámetros
- buffer
- ArraySegment<Byte>
Búfer de los datos recibidos.
- socketFlags
- SocketFlags
Combinación bit a bit de valores SocketFlags que se usarán al recibir los datos.
- remoteEndPoint
- EndPoint
Un punto de conexión del mismo tipo que el punto de conexión del host remoto.
Devoluciones
Una tarea asincrónica que se completa con un SocketReceiveMessageFromResult que contiene el número de bytes recibidos e información adicional sobre el host de envío.
Excepciones
El Socket objeto se ha cerrado.
remoteEndPoint es null.
Debe llamar al método Bind antes de realizar esta operación.
Se aplica a
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Recibe datos y devuelve información adicional sobre el remitente del mensaje.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
Parámetros
- remoteEndPoint
- EndPoint
Un punto de conexión del mismo tipo que el punto de conexión del host remoto.
- cancellationToken
- CancellationToken
Se debe cancelar un token de cancelación que se puede usar para indicar la operación asincrónica.
Devoluciones
Una tarea asincrónica que se completa con un SocketReceiveMessageFromResult que contiene el número de bytes recibidos e información adicional sobre el host de envío.
Excepciones
El Socket objeto se ha cerrado.
remoteEndPoint es null.
Debe llamar al método Bind antes de realizar esta operación.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.
Se aplica a
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
- Source:
- Socket.Tasks.cs
Recibe datos y devuelve información adicional sobre el remitente del mensaje.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync(Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
Parámetros
- socketFlags
- SocketFlags
Combinación bit a bit de valores SocketFlags que se usarán al recibir los datos.
- remoteEndPoint
- EndPoint
Un punto de conexión del mismo tipo que el punto de conexión del host remoto.
- cancellationToken
- CancellationToken
Se debe cancelar un token de cancelación que se puede usar para indicar la operación asincrónica.
Devoluciones
Una tarea asincrónica que se completa con un SocketReceiveMessageFromResult que contiene el número de bytes recibidos e información adicional sobre el host de envío.
Excepciones
El Socket objeto se ha cerrado.
remoteEndPoint es null.
Debe llamar al método Bind antes de realizar esta operación.
Se canceló el token de cancelación. Esta excepción se almacena en la tarea devuelta.