nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Los objetos de esta clase representan extremos de transporte UDP.

Resumen

La capa Nest Inet encapsula métodos para interactuar con extremos de transporte UDP (sockets SOCK_DGRAM en sistemas Linux y derivados de BSD) o bloques de control de protocolo UDP de LwIP, ya que el sistema está configurado según corresponda.

Herencia

Hereda de: nl::Inet::IPEndPointBasis

Funciones públicas

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Vincula el extremo a una dirección IP de interfaz.
BindInterface(IPAddressType addrType, InterfaceId intf)
Vincula el extremo a una interfaz de red.
Close(void)
void
Cierra el extremo.
Free(void)
void
Cierra el extremo y recicla su memoria.
GetBoundInterface(void)
InterfaceId
Obtén la interfaz vinculada en este extremo.
GetBoundPort(void)
uint16_t
Listen(void)
Prepara el extremo para recibir mensajes UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envía un mensaje UDP a un destino especificado.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Un sinónimo de SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envía un mensaje UDP a la dirección de destino especificada.

Funciones públicas

Vincular

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  InterfaceId intfId
)

Vincula el extremo a una dirección IP de interfaz.

Vincula el extremo a la dirección IP de la interfaz de red especificada.

Detalles
Parámetros
[in] addrType
la versión del protocolo de la dirección IP
[in] addr
la dirección IP (debe ser una dirección de interfaz)
[in] port
el puerto UDP
[in] intfId
un indicador de interfaz de red opcional
Valores que se muestran
INET_NO_ERROR
correcto: extremo vinculado a la dirección
INET_ERROR_INCORRECT_STATE
que el extremo se vinculó anteriormente
INET_NO_MEMORY
memoria insuficiente para el extremo
INET_ERROR_UNKNOWN_INTERFACE
En algunas plataformas, la interfaz especificada de forma opcional no está presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType no coincide con IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType es kIPAddressType_Any, o el tipo de addr no es igual a addrType.
other
otro error del sistema o de la plataforma

En LwIP, no se debe llamar a este método con el bloqueo de pila LwIP ya adquirido.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Vincula el extremo a una interfaz de red.

Vincula el extremo a la dirección IP de la interfaz de red especificada.

Detalles
Parámetros
[in] addrType
la versión de protocolo de la dirección IP.
[in] intf
de la interfaz de red.
Valores que se muestran
INET_NO_ERROR
correcto: extremo vinculado a la dirección
INET_NO_MEMORY
memoria insuficiente para el extremo
INET_ERROR_NOT_IMPLEMENTED
no se completó la implementación del sistema.
INET_ERROR_UNKNOWN_INTERFACE
En algunas plataformas, la interfaz no está presente.
other
otro error del sistema o de la plataforma

En LwIP, no se debe llamar a este método con el bloqueo de pila LwIP ya adquirido.

Cerrar

void Close(
  void
)

Cierra el extremo.

Si es mState != kState_Closed, cierra el extremo y lo quita del conjunto de extremos aptos para eventos de comunicación.

En los sistemas LwIP, no se debe llamar a este método con el bloqueo de pila LwIP ya adquirido.

Gratis

void Free(
  void
)

Cierra el extremo y recicla su memoria.

Invoca el método Close y, luego, el método InetLayerBasis::Release para mostrar el objeto a su grupo de memoria.

En los sistemas LwIP, no se debe llamar a este método con el bloqueo de pila LwIP ya adquirido.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Obtén la interfaz vinculada en este extremo.

Detalles
Qué muestra
InterfaceId: Es el ID de interfaz vinculada.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Escuchar

INET_ERROR Listen(
  void
)

Prepara el extremo para recibir mensajes UDP.

Si State ya es kState_Listening, no se realiza ninguna operación. De lo contrario, mState se establece en kState_Listening y el extremo está preparado para recibir mensajes UDP, según la semántica de la plataforma.

Detalles
Valores que se muestran
INET_NO_ERROR
Listo: el extremo está listo para recibir mensajes.
INET_ERROR_INCORRECT_STATE
extremo ya está escuchando.

En LwIP, no se debe llamar a este método con el bloqueo de pila de LwIP ya adquirido.

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *pktInfo,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envía un mensaje UDP a un destino especificado.

 Send the UDP message in \c msg to the destination address and port given in
 \c pktInfo.  If \c pktInfo contains an interface id, the message will be sent
 over the specified interface.  If \c pktInfo contains a source address, the
 given address will be used as the source of the UDP message.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalles
Parámetros
[in] pktInfo
información de origen y destino para el mensaje UDP
[in] msg
un búfer de paquetes que contiene el mensaje UDP,
[in] sendFlags
marcas de opción de transmisión opcionales
Valores que se muestran
INET_NO_ERROR
correcto: msg está en cola para transmitir.
INET_ERROR_NOT_SUPPORTED
el sistema no admite la operación solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
La dirección de destino y la dirección de la interfaz vinculada no tienen versiones de protocolo ni tipo de dirección que coincidan.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene el mensaje UDP completo.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, solo se colocó una parte truncada de msg en cola para su transmisión.
other
otro error del sistema o de la plataforma

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  uint16_t port,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Un sinónimo de SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).

SendTo

INET_ERROR SendTo(
  IPAddress addr,
  uint16_t port,
  InterfaceId intfId,
  Weave::System::PacketBuffer *msg,
  uint16_t sendFlags
)

Envía un mensaje UDP a la dirección de destino especificada.

 If possible, then this method sends the UDP message \c msg to the
 destination \c addr (with \c intfId used as the scope
 identifier for IPv6 link-local destinations) and \c port with the
 transmit option flags encoded in \c sendFlags.

 Where (sendFlags & kSendFlag_RetainBuffer) != 0, calls
 Weave::System::PacketBuffer::Free on behalf of the caller, otherwise this
 method deep-copies \c msg into a fresh object, and queues that for
 transmission, leaving the original \c msg available after return.

Detalles
Parámetros
[in] addr
la dirección IP de destino
[in] port
el puerto UDP de destino
[in] intfId
un indicador de interfaz de red opcional
[in] msg
el búfer de paquetes que contiene el mensaje UDP,
[in] sendFlags
marcas de opción de transmisión opcionales
Valores que se muestran
INET_NO_ERROR
correcto: msg está en cola para transmitir.
INET_ERROR_NOT_SUPPORTED
el sistema no admite la operación solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
La dirección de destino y la dirección de la interfaz vinculada no tienen versiones de protocolo ni tipo de dirección que coincidan.
INET_ERROR_MESSAGE_TOO_LONG
msg no contiene el mensaje UDP completo.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
En algunas plataformas, solo se colocó una parte truncada de msg en cola para su transmisión.
other
otro error del sistema o de la plataforma