nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Les objets de cette classe représentent les points de terminaison de transport UDP.

Résumé

La couche d'entrée Nest encapsule les méthodes d'interaction avec les points de terminaison de transport UDP (sockets SOCCK_DGRAM sur les systèmes Linux et dérivés de BSD) ou avec les blocs de contrôle du protocole UDP LwIP, car le système est configuré en conséquence.

Héritage

Hérite de: nl::Inet::IPEndPointBasis

Fonctions publiques

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Liez le point de terminaison à une adresse IP d'interface.
BindInterface(IPAddressType addrType, InterfaceId intf)
Liez le point de terminaison à une interface réseau.
Close(void)
void
Fermez le point de terminaison.
Free(void)
void
Fermez le point de terminaison et recyclez sa mémoire.
GetBoundInterface(void)
InterfaceId
Obtenez l'interface liée à ce point de terminaison.
GetBoundPort(void)
uint16_t
Listen(void)
Préparez le point de terminaison pour recevoir des messages UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envoie un message UDP à une destination spécifiée.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Synonyme de SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envoyez un message UDP à l'adresse de destination spécifiée.

Fonctions publiques

Lier

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

Liez le point de terminaison à une adresse IP d'interface.

Lie le point de terminaison à l'adresse IP de l'interface réseau spécifiée.

Détails
Paramètres
[in] addrType
La version du protocole de l'adresse IP
[in] addr
L'adresse IP (doit être une adresse d'interface)
[in] port
le port UDP
[in] intfId
un indicateur d'interface réseau facultatif
Valeurs renvoyées
INET_NO_ERROR
réussite: point de terminaison lié à l'adresse
INET_ERROR_INCORRECT_STATE
le point de terminaison a déjà été lié
INET_NO_MEMORY
Mémoire insuffisante pour le point de terminaison
INET_ERROR_UNKNOWN_INTERFACE
Sur certaines plates-formes, l'interface spécifiée en option n'est pas présente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType ne correspond pas à IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType est kIPAddressType_Any, ou le type de addr n'est pas égal à addrType.
other
autre erreur système ou plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Liez le point de terminaison à une interface réseau.

Lie le point de terminaison à l'adresse IP de l'interface réseau spécifiée.

Détails
Paramètres
[in] addrType
la version du protocole de l'adresse IP.
[in] intf
un indicateur de l'interface réseau.
Valeurs renvoyées
INET_NO_ERROR
réussite: point de terminaison lié à l'adresse
INET_NO_MEMORY
Mémoire insuffisante pour le point de terminaison
INET_ERROR_NOT_IMPLEMENTED
l'implémentation du système n'est pas terminée.
INET_ERROR_UNKNOWN_INTERFACE
Sur certaines plates-formes, l'interface n'est pas présente.
other
autre erreur système ou plate-forme

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

Fermer

void Close(
  void
)

Fermez le point de terminaison.

Si la valeur est mState != kState_Closed, le point de terminaison est fermé en le supprimant de l'ensemble des points de terminaison éligibles aux événements de communication.

Sur les systèmes LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

Gratuit

void Free(
  void
)

Fermez le point de terminaison et recyclez sa mémoire.

Elle appelle la méthode Close, puis la méthode InetLayerBasis::Release pour renvoyer l'objet dans son pool de mémoire.

Sur les systèmes LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Obtenez l'interface liée à ce point de terminaison.

Détails
Renvoie
InterfaceId : identifiant de l'interface liée.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Écouter

INET_ERROR Listen(
  void
)

Préparez le point de terminaison pour recevoir des messages UDP.

Si State est déjà défini sur kState_Listening, aucune opération n'est effectuée. Sinon, mState est défini sur kState_Listening et le point de terminaison est prêt à recevoir des messages UDP, selon la sémantique de la plate-forme.

Détails
Valeurs renvoyées
INET_NO_ERROR
succès: point de terminaison prêt à recevoir des messages.
INET_ERROR_INCORRECT_STATE
le point de terminaison écoute déjà.

Sur LwIP, cette méthode ne doit pas être appelée avec le verrouillage de la pile LwIP déjà acquis

SendMsg

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

Envoie un message UDP à une destination spécifiée.

 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.

Détails
Paramètres
[in] pktInfo
Les informations sur la source et la destination du message UDP
[in] msg
un tampon de paquet contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs renvoyées
INET_NO_ERROR
réussite: msg est mis en file d'attente pour envoi.
INET_ERROR_NOT_SUPPORTED
le système ne prend pas en charge l'opération demandée.
INET_ERROR_WRONG_ADDRESS_TYPE
l'adresse de destination et l'adresse d'interface liée n'ont pas de version de protocole ni de type d'adresse correspondants.
INET_ERROR_MESSAGE_TOO_LONG
msg ne contient pas l'intégralité du message UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Sur certaines plates-formes, seule une partie tronquée de msg a été mise en file d'attente pour envoi.
other
autre erreur système ou plate-forme

SendTo

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

Synonyme 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
)

Envoyez un message UDP à l'adresse de destination spécifiée.

 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.

Détails
Paramètres
[in] addr
l'adresse IP de destination
[in] port
le port UDP de destination
[in] intfId
un indicateur d'interface réseau facultatif
[in] msg
le tampon de paquet contenant le message UDP
[in] sendFlags
indicateurs d'option de transmission facultatifs
Valeurs renvoyées
INET_NO_ERROR
réussite: msg est mis en file d'attente pour envoi.
INET_ERROR_NOT_SUPPORTED
le système ne prend pas en charge l'opération demandée.
INET_ERROR_WRONG_ADDRESS_TYPE
l'adresse de destination et l'adresse d'interface liée n'ont pas de version de protocole ni de type d'adresse correspondants.
INET_ERROR_MESSAGE_TOO_LONG
msg ne contient pas l'intégralité du message UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Sur certaines plates-formes, seule une partie tronquée de msg a été mise en file d'attente pour envoi.
other
autre erreur système ou plate-forme