Compartir a través de


Socket.ReceiveMessageFrom Método

Definición

Sobrecargas

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento SocketFlags especificado y almacena el punto de conexión y la información del paquete.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento socketFlags especificado y almacena el punto de conexión y la información del paquete.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento SocketFlags especificado y almacena el punto de conexión y la información del paquete.

public:
 int ReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : byte[] * int * int * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parámetros

buffer
Byte[]

Matriz de tipo Byte que es la ubicación de almacenamiento para los datos recibidos.

offset
Int32

Posición en el parámetro buffer para almacenar los datos recibidos.

size
Int32

Número de bytes que se va a recibir.

socketFlags
SocketFlags

Combinación bit a bit de los valores de SocketFlags.

remoteEP
EndPoint

Referencia a un EndPoint de un tipo del mismo tipo que el punto de conexión del host remoto que se va a actualizar al recibirse correctamente.

ipPacketInformation
IPPacketInformation

IPPacketInformation que contiene información de dirección e interfaz.

Devoluciones

Número de bytes recibidos.

Excepciones

buffer es null.

O bien

remoteEP es null.

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 parámetro de desplazamiento.

socketFlags no es una combinación válida de valores.

o bien

La propiedad LocalEndPoint no se estableció.

o bien

.NET Framework se está ejecutando en procesador AMD de 64 bits.

o bien

Error al intentar acceder al socket.

El Socket se ha cerrado.

Comentarios

El ReceiveMessageFrom método lee los datos en el buffer parámetro , devuelve el número de bytes leídos correctamente y captura el punto de conexión del host remoto desde el que se enviaron los datos, así como información sobre el paquete recibido.

El ReceiveMessageFrom 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.

En el caso de los sockets orientados a mensajes, un mensaje entrante se coloca en el buffer parámetro hasta el tamaño total especificado en el size parámetro . El offset parámetro determina dónde se colocan los buffer datos. El método devuelve la cantidad real de datos colocados en buffer .ReceiveMessageFrom

El ReceiveMessageFrom método establece automáticamente la opción de PacketInformation socket en true la primera vez que se llama para un determinado Socket. Sin embargo, el objeto devuelto IPPacketInformation solo será válido para los paquetes que llegan al equipo local una vez establecida la opción de socket. Si un socket se envía paquetes entre cuando 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 su primera llamada al ReceiveMessageFrom método , las llamadas al ReceiveMessageFrom método devolverán 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 en true antes de enlazarse a un punto de conexión local mediante el SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método .

Una aplicación puede examinar el ipPacketInformation parámetro si necesita saber si el datagrama se envió mediante una dirección de unidifusión, multidifusión o difusión.

Nota

del AddressFamilyEndPoint objeto utilizado en ReceiveFrom debe coincidir con el AddressFamily de utilizado EndPoint en SendTo.

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.

Consulte también

Se aplica a

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Recibe el número especificado de bytes de datos en la ubicación especificada del búfer de datos, mediante el elemento socketFlags especificado y almacena el punto de conexión y la información del paquete.

public:
 int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

Parámetros

buffer
Span<Byte>

de Span<T> tipo Byte que es la ubicación de almacenamiento de los datos recibidos.

socketFlags
SocketFlags

Combinación bit a bit de los valores de SocketFlags.

remoteEP
EndPoint

Referencia a un EndPoint de un tipo del mismo tipo que el punto de conexión del host remoto que se va a actualizar al recibirse correctamente.

ipPacketInformation
IPPacketInformation

IPPacketInformation que contiene información de dirección e interfaz.

Devoluciones

Número de bytes recibidos.

Excepciones

El objeto Socket se ha cerrado.

RemoteEP EndPoint es null.

El objeto Socket no está en modo de bloqueo y no puede aceptar esta llamada sincrónica. Debe llamar al método Bind antes de realizar esta operación.

Se aplica a