nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Objekte dieser Klasse stellen UDP-Transportendpunkte dar.

Zusammenfassung

Nest Inet Layer kapselt Methoden für die Interaktion mit UDP-Transportendpunkten (SOCK_DGRAM-Sockets auf Linux- und BSD-abgeleiteten Systemen) oder LwIP-UDP-Protokollkontrollblöcken, je nachdem, wie das System entsprechend konfiguriert ist.

Übernahme

Übernimmt von: nl::Inet::IPEndPointBasis

Öffentliche Funktionen

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Binden Sie den Endpunkt an eine Schnittstellen-IP-Adresse.
BindInterface(IPAddressType addrType, InterfaceId intf)
Binden Sie den Endpunkt an eine Netzwerkschnittstelle.
Close(void)
void
Schließen Sie den Endpunkt.
Free(void)
void
Schließen Sie den Endpunkt und verwenden Sie den Arbeitsspeicher wieder.
GetBoundInterface(void)
InterfaceId
Ruft die gebundene Schnittstelle auf diesem Endpunkt ab.
GetBoundPort(void)
uint16_t
Listen(void)
Bereiten Sie den Endpunkt für den Empfang von UDP-Nachrichten vor.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Sendet eine UDP-Nachricht an ein bestimmtes Ziel.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Ein Synonym für SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Eine UDP-Nachricht an die angegebene Zieladresse senden.

Öffentliche Funktionen

Binden

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

Binden Sie den Endpunkt an eine Schnittstellen-IP-Adresse.

Bindet den Endpunkt an die angegebene IP-Adresse der Netzwerkschnittstelle.

Details
Parameter
[in] addrType
die Protokollversion der IP-Adresse
[in] addr
die IP-Adresse (muss eine Schnittstellenadresse sein)
[in] port
UDP-Port
[in] intfId
eine optionale Anzeige für die Netzwerkschnittstelle
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist an Adresse gebunden
INET_ERROR_INCORRECT_STATE
Endpunkt wurde zuvor gebunden
INET_NO_MEMORY
Nicht genügend Arbeitsspeicher für den Endpunkt
INET_ERROR_UNKNOWN_INTERFACE
Auf einigen Plattformen ist die optional angegebene Schnittstelle nicht vorhanden.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType stimmt nicht mit IPVer überein.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ist kIPAddressType_Any oder der Typ von addr ist nicht gleich addrType.
other
anderer System- oder Plattformfehler

Bei LwIP darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Binden Sie den Endpunkt an eine Netzwerkschnittstelle.

Bindet den Endpunkt an die angegebene IP-Adresse der Netzwerkschnittstelle.

Details
Parameter
[in] addrType
die Protokollversion der IP-Adresse.
[in] intf
Anzeige der Netzwerkschnittstelle.
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist an Adresse gebunden
INET_NO_MEMORY
Nicht genügend Arbeitsspeicher für den Endpunkt
INET_ERROR_NOT_IMPLEMENTED
Systemimplementierung nicht abgeschlossen.
INET_ERROR_UNKNOWN_INTERFACE
Auf einigen Plattformen ist die Benutzeroberfläche nicht vorhanden.
other
anderer System- oder Plattformfehler

Bei LwIP darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden.

Schließen

void Close(
  void
)

Schließen Sie den Endpunkt.

Bei mState != kState_Closed wird der Endpunkt geschlossen und aus der Gruppe von Endpunkten entfernt, die für Kommunikationsereignisse infrage kommen.

Bei LwIP-Systemen darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden.

Kostenlos

void Free(
  void
)

Schließen Sie den Endpunkt und verwenden Sie den Arbeitsspeicher wieder.

Ruft die Methode Close und dann die Methode InetLayerBasis::Release auf, um das Objekt an seinen Arbeitsspeicherpool zurückzugeben

Bei LwIP-Systemen darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Ruft die gebundene Schnittstelle auf diesem Endpunkt ab.

Details
Rückgabe
InterfaceId Die ID der gebundenen Schnittstelle.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Anhören

INET_ERROR Listen(
  void
)

Bereiten Sie den Endpunkt für den Empfang von UDP-Nachrichten vor.

Wenn State bereits kState_Listening ist, wird kein Vorgang ausgeführt. Andernfalls wird mState auf kState_Listening gesetzt und der Endpunkt ist gemäß der Semantik der Plattform auf den Empfang von UDP-Nachrichten vorbereitet.

Details
Rückgabewerte
INET_NO_ERROR
Erfolg: Endpunkt ist zum Empfangen von Nachrichten bereit.
INET_ERROR_INCORRECT_STATE
Endpunkt überwacht bereits.

Bei LwIP darf diese Methode nicht mit der bereits erhaltenen LwIP-Stack-Sperre aufgerufen werden

SendMsg

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

Sendet eine UDP-Nachricht an ein bestimmtes Ziel.

 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.

Details
Parameter
[in] pktInfo
Quell- und Zielinformationen für die UDP-Nachricht
[in] msg
Paketpuffer, der die UDP-Nachricht enthält
[in] sendFlags
optionale Flags für Übertragungsoptionen
Rückgabewerte
INET_NO_ERROR
Erfolg: msg wurde zur Übertragung in die Warteschlange gestellt.
INET_ERROR_NOT_SUPPORTED
Das System unterstützt den angeforderten Vorgang nicht.
INET_ERROR_WRONG_ADDRESS_TYPE
Die Zieladresse und die Adresse der gebundenen Schnittstelle weisen keine übereinstimmenden Protokollversionen oder Adresstypen auf.
INET_ERROR_MESSAGE_TOO_LONG
msg enthält nicht die gesamte UDP-Nachricht.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Auf einigen Plattformen wurde nur ein abgeschnittener Teil von msg zur Übertragung in die Warteschlange gestellt.
other
anderer System- oder Plattformfehler

SendTo

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

Ein Synonym für 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
)

Eine UDP-Nachricht an die angegebene Zieladresse senden.

 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.

Details
Parameter
[in] addr
die Ziel-IP-Adresse
[in] port
den UDP-Zielport
[in] intfId
eine optionale Anzeige für die Netzwerkschnittstelle
[in] msg
Paketzwischenspeicher mit der UDP-Nachricht
[in] sendFlags
optionale Flags für Übertragungsoptionen
Rückgabewerte
INET_NO_ERROR
Erfolg: msg wurde zur Übertragung in die Warteschlange gestellt.
INET_ERROR_NOT_SUPPORTED
Das System unterstützt den angeforderten Vorgang nicht.
INET_ERROR_WRONG_ADDRESS_TYPE
Die Zieladresse und die Adresse der gebundenen Schnittstelle weisen keine übereinstimmenden Protokollversionen oder Adresstypen auf.
INET_ERROR_MESSAGE_TOO_LONG
msg enthält nicht die gesamte UDP-Nachricht.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Auf einigen Plattformen wurde nur ein abgeschnittener Teil von msg zur Übertragung in die Warteschlange gestellt.
other
anderer System- oder Plattformfehler