Socket.ReceiveMessageFromAsync Método

Definición

Sobrecargas

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación indicada del búfer de datos, mediante la propiedad SocketFlags especificada, y almacena la información sobre el extremo y el 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

Comienza a recibir de forma asincrónica el número especificado de bytes de datos en la ubicación indicada del búfer de datos, mediante la propiedad SocketFlags especificada, y almacena la información sobre el extremo y el 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

e
SocketAsyncEventArgs

Objeto SocketAsyncEventArgs que se usa para esta operación de socket asincrónica.

Devoluciones

Devuelve true si la operación de E/S está pendiente. Al completar la operación se provoca el evento Completed del parámetro e.

Devuelve false si la operación de E/S se ha completado de forma sincrónica. En ese caso, el evento Completed del parámetro e no se provoca y el objeto e que se pasa como parámetro puede examinarse inmediatamente después de que se devuelva la llamada al método para recuperar el resultado de la operación.

Excepciones

El Socket se 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 procesar. 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 los mismos tipos 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 solo 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 en 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 , SendToConnectAsync, o SendToAsync ) y la primera llamada al ReceiveMessageFromAsync método , las llamadas al 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

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

Punto de conexión del mismo tipo que el punto de conexión del host remoto.

Devoluciones

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 objeto Socket 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

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

Punto de conexión del mismo tipo que el punto de conexión del host remoto.

Devoluciones

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 objeto Socket 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

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

buffer
Memory<Byte>

Búfer de los datos recibidos.

remoteEndPoint
EndPoint

Punto de conexión del mismo tipo que el punto de conexión del host remoto.

cancellationToken
CancellationToken

Token de cancelación que se puede usar para señalar que la operación asincrónica se debe cancelar.

Devoluciones

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 objeto Socket 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

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

buffer
Memory<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

Punto de conexión del mismo tipo que el punto de conexión del host remoto.

cancellationToken
CancellationToken

Token de cancelación que se puede usar para señalar que la operación asincrónica se debe cancelar.

Devoluciones

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 objeto Socket 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