Socket.ReceiveMessageFrom 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
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 |
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
- 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
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
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
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
- 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 AddressFamily de utilizado EndPoint en ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) debe coincidir con el AddressFamily de utilizado EndPoint en SendTo.
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.