Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Socket.ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) Method

Definición

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.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

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 *  *  *  -> 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.An array of type Byte that is the storage location for received data.

offset
Int32 Int32 Int32 Int32

Posición en el parámetro buffer para almacenar los datos recibidos.The position in the buffer parameter to store the received data.

size
Int32 Int32 Int32 Int32

Número de bytes que se va a recibir.The number of bytes to receive.

socketFlags
SocketFlags SocketFlags SocketFlags SocketFlags

Combinación bit a bit de los valores de SocketFlags.A bitwise combination of the SocketFlags values.

remoteEP
EndPoint EndPoint EndPoint EndPoint

EndPoint que se pasa por referencia y que representa el servidor remoto.An EndPoint, passed by reference, that represents the remote server.

ipPacketInformation
IPPacketInformation IPPacketInformation IPPacketInformation IPPacketInformation

IPPacketInformation que contiene información de dirección e interfaz.An IPPacketInformation holding address and interface information.

Devoluciones

Número de bytes recibidos.The number of bytes received.

Excepciones

buffer es null.buffer is null.

- O bien,- or- remoteEP es null.remoteEP is null.

offset es menor que 0.offset is less than 0.

O bien-or- offset es mayor que la longitud de buffer.offset is greater than the length of buffer.

O bien-or- size es menor que 0.size is less than 0.

O bien-or- size es mayor que la longitud de buffer menos el valor del parámetro de desplazamiento.size is greater than the length of the buffer minus the value of the offset parameter.

socketFlags no es una combinación válida de valores.socketFlags is not a valid combination of values.

O bien-or- La propiedad LocalEndPoint no se estableció.The LocalEndPoint property was not set.

O bien-or- .NET Framework se está ejecutando en procesador AMD de 64 bits.The .NET Framework is running on an AMD 64-bit processor.

O bien-or- Error al intentar acceder al socket.An error occurred when attempting to access the socket.

El sistema operativo es Windows 2000 o una versión anterior, y este método requiere Windows XP.The operating system is Windows 2000 or earlier, and this method requires Windows XP.

Comentarios

El ReceiveMessageFrom método lee 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.The ReceiveMessageFrom method reads data into the buffer parameter, returns the number of bytes successfully read, and captures the remote host endpoint from which the data was sent, as well as information about the received packet.

El ReceiveMessageFrom método se utiliza principalmente para recibir datos del mensaje en un socket sin conexión.The ReceiveMessageFrom method is used primarily to receive message data on a connectionless socket. Debe conocer la dirección local del socket.The socket's local address must be known. Este método solo se puede usar con datagrama y sockets básicos.This method can only be used with datagram and raw sockets. El socket debe inicializarse con el tipo de socket establecido en Dgram o Raw antes de llamar a este método.The socket must be initialized with the socket type set to Dgram or Raw before calling this method. Esto puede hacerse cuando el socket se construye utilizando Socket.This can be done when the socket is constructed using Socket.

Para los sockets orientados a mensajes, se coloca un mensaje entrante en el buffer parámetro hasta el tamaño total especificado en el size parámetro.For message-oriented sockets, an incoming message is placed into the buffer parameter up to the total size specified in the size parameter. El offset parámetro determina dónde en la buffer se colocan los datos.The offset parameter determines where in the buffer the data is placed. La cantidad de datos real se coloca en el buffer devuelto por la ReceiveMessageFrom método.The actual amount of data placed into the buffer is returned by the ReceiveMessageFrom method.

El ReceiveMessageFrom método automáticamente método establece el PacketInformation opción de socket true la primera vez que se llama para un determinado Socket.The ReceiveMessageFrom method automatically method sets the PacketInformation socket option to true the first time it is called for a given Socket. Sin embargo, el valor devuelto IPPacketInformation objeto solo será válido para los paquetes que llegan al equipo local una vez establecida la opción de socket.However, the returned IPPacketInformation object will only be valid for packets which arrive at the local computer after the socket option has been set. Si un socket se envía paquetes entre cuando se enlaza a un extremo local (explícitamente por el Bind método o implícitamente por uno de los Connect, ConnectAsync, SendTo, o SendToAsync métodos) y su primera llamada a la ReceiveMessageFrom método, las llamadas a ReceiveMessageFrom método devolverá válido IPPacketInformation objetos para estos paquetes.If a socket is sent packets between when it is bound to a local endpoint (explicitly by the Bind method or implicitly by one of the Connect, ConnectAsync, SendTo, or SendToAsync methods) and its first call to the ReceiveMessageFrom method, calls to ReceiveMessageFrom method will return invalid IPPacketInformation objects for these packets.

Para asegurarse de que todos los IPPacketInformation objetos son válidos, una aplicación debe establecer el PacketInformation opción de socket true antes de que está enlazado a un punto de conexión local con el SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) método.To ensure that all IPPacketInformation objects are valid, an application should set the PacketInformation socket option to true before it is bound to a local endpoint using the SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) method.

Una aplicación puede examinar la ipPacketInformation parámetro si es necesario saber si el datagrama se envió mediante una unidifusión, la dirección de difusión o multidifusión.An application can examine the ipPacketInformation parameter if it needs to know if the datagram was sent using a unicast, multicast, or broadcast address.

Nota

El AddressFamily de la EndPoint utilizados en ReceiveFrom debe coincidir con el AddressFamily de la EndPoint utilizados en SendTo.The AddressFamily of the EndPoint used in ReceiveFrom needs to match the AddressFamily of the EndPoint used in SendTo.

Nota

Este miembro genera información de seguimiento cuando se habilita el seguimiento de red en la aplicación.This member outputs trace information when you enable network tracing in your application. Para obtener más información, consulte seguimiento de red en .NET Framework.For more information, see Network Tracing in the .NET Framework.

Seguridad

SocketPermission
para aceptar conexiones desde la red.for accepting connections from the network. Enumeración asociada: Accept.Associated enumeration: Accept.

Se aplica a

Consulte también: