UDP

Dieses Modul enthält Funktionen, die die UDP-Kommunikation steuern.

Zusammenfassung

Aufzählungen

otNetifIdentifier{
  OT_NETIF_UNSPECIFIED = 0,
  OT_NETIF_THREAD,
  OT_NETIF_BACKBONE
}
enum
Diese Aufzählung definiert die Kennungen der OpenThread-Netzwerkschnittstelle.

Typdefekt

otNetifIdentifier typedef
Diese Aufzählung definiert die Kennungen der OpenThread-Netzwerkschnittstelle.
otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
bool(*
Mit diesem Callback kann OpenThread bestimmte Handler für bestimmte UDP-Nachrichten bereitstellen.
otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo) typedef
void(*
Mit diesem Callback kann OpenThread die Anwendung einer empfangenen UDP-Nachricht informieren.
otUdpReceiver typedef
struct otUdpReceiver
Diese Struktur stellt einen UDP-Empfänger dar.
otUdpSocket typedef
struct otUdpSocket
Diese Struktur stellt einen UDP-Socket dar.

Funktionen

otUdpAddReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
Durch diese Funktion wird ein UDP-Empfänger hinzugefügt.
otUdpBind(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName, otNetifIdentifier aNetif)
Binden Sie einen UDP-/IPv6-Socket.
otUdpClose(otInstance *aInstance, otUdpSocket *aSocket)
Schließen Sie einen UDP/IPv6-Socket.
otUdpConnect(otInstance *aInstance, otUdpSocket *aSocket, const otSockAddr *aSockName)
Verbinden Sie einen UDP-/IPv6-Socket.
otUdpGetSockets(otInstance *aInstance)
Diese Funktion ruft den Header der verknüpften Liste von UDP-Sockets ab.
otUdpIsOpen(otInstance *aInstance, const otUdpSocket *aSocket)
bool
Prüfen Sie, ob ein UDP-Socket geöffnet ist.
otUdpNewMessage(otInstance *aInstance, const otMessageSettings *aSettings)
Ordnen Sie einen neuen Zwischenspeicher für Nachrichten zu, um eine UDP-Nachricht zu senden.
otUdpOpen(otInstance *aInstance, otUdpSocket *aSocket, otUdpReceive aCallback, void *aContext)
Öffnen Sie einen UDP-/IPv6-Socket.
otUdpRemoveReceiver(otInstance *aInstance, otUdpReceiver *aUdpReceiver)
Diese Funktion entfernt einen UDP-Empfänger.
otUdpSend(otInstance *aInstance, otUdpSocket *aSocket, otMessage *aMessage, const otMessageInfo *aMessageInfo)
Senden Sie eine UDP-/IPv6-Nachricht.
otUdpSendDatagram(otInstance *aInstance, otMessage *aMessage, otMessageInfo *aMessageInfo)
Diese Funktion sendet eine UDP-Nachricht ohne Socket.

Bauwerke

otUdpReceiver

Diese Struktur stellt einen UDP-Empfänger dar.

otUdpSocket

Diese Struktur stellt einen UDP-Socket dar.

Aufzählungen

otNetifIdentifier

 otNetifIdentifier

Diese Aufzählung definiert die Kennungen der OpenThread-Netzwerkschnittstelle.

Attribute
OT_NETIF_BACKBONE

Die Backbone-Schnittstelle

OT_NETIF_THREAD

Die Thread-Oberfläche.

OT_NETIF_UNSPECIFIED

Nicht angegebene Netzwerkschnittstelle.

Typdefekt

otNetifIdentifier

enum otNetifIdentifier otNetifIdentifier

Diese Aufzählung definiert die Kennungen der OpenThread-Netzwerkschnittstelle.

otUdpHandler

bool(* otUdpHandler)(void *aContext, const otMessage *aMessage, const otMessageInfo *aMessageInfo)

Mit diesem Callback kann OpenThread bestimmte Handler für bestimmte UDP-Nachrichten bereitstellen.

Details
Rückgabewerte
true
Die Nachricht wird von diesem Empfänger verarbeitet und sollte nicht weiter verarbeitet werden.
false
Die Nachricht wird von diesem Empfänger nicht verarbeitet.

otUdpReceive

void(* otUdpReceive)(void *aContext, otMessage *aMessage, const otMessageInfo *aMessageInfo)

Mit diesem Callback kann OpenThread die Anwendung einer empfangenen UDP-Nachricht informieren.

OTUdpReceiver

struct otUdpReceiver otUdpReceiver

Diese Struktur stellt einen UDP-Empfänger dar.

otUdpSocket

struct otUdpSocket otUdpSocket

Diese Struktur stellt einen UDP-Socket dar.

Funktionen

otUdpAddReceiver

otError otUdpAddReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

Durch diese Funktion wird ein UDP-Empfänger hinzugefügt.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aUdpReceiver
Ein Zeiger auf den UDP-Empfänger.
Rückgabewerte
OT_ERROR_NONE
Der Empfänger wurde hinzugefügt.
OT_ERROR_ALREADY
Der UDP-Empfänger wurde bereits hinzugefügt.

OTUdpBind

otError otUdpBind(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName,
  otNetifIdentifier aNetif
)

Binden Sie einen UDP-/IPv6-Socket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
[in] aSockName
Ein Zeiger auf eine IPv6-Socket-Adressstruktur.
[in] aNetif
Die zu bindende Netzwerkschnittstelle.
Rückgabewerte
OT_ERROR_NONE
Bindung erfolgreich abgeschlossen.
OT_ERROR_FAILED
UDP-Socket konnte nicht verknüpft werden.

otUdpClose

otError otUdpClose(
  otInstance *aInstance,
  otUdpSocket *aSocket
)

Schließen Sie einen UDP/IPv6-Socket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
Rückgabewerte
OT_ERROR_NONE
Der Socket wurde geschlossen.
OT_ERROR_FAILED
UDP-Socket konnte nicht geschlossen werden.

otUdpConnect

otError otUdpConnect(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  const otSockAddr *aSockName
)

Verbinden Sie einen UDP-/IPv6-Socket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
[in] aSockName
Ein Zeiger auf eine IPv6-Socket-Adressstruktur.
Rückgabewerte
OT_ERROR_NONE
Der Verbindungsaufbau war erfolgreich.
OT_ERROR_FAILED
UDP-Socket konnte nicht verbunden werden.

otUdpGetSockets

otUdpSocket * otUdpGetSockets(
  otInstance *aInstance
)

Diese Funktion ruft den Header der verknüpften Liste von UDP-Sockets ab.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
Rückgabe
Ein Zeiger auf den Header der verknüpften UDP-Socket-Liste.

otUdpIsOpen

bool otUdpIsOpen(
  otInstance *aInstance,
  const otUdpSocket *aSocket
)

Prüfen Sie, ob ein UDP-Socket geöffnet ist.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
Rückgabe
Ob der UDP-Socket geöffnet ist.

otUdpNewMessage

otMessage * otUdpNewMessage(
  otInstance *aInstance,
  const otMessageSettings *aSettings
)

Ordnen Sie einen neuen Zwischenspeicher für Nachrichten zu, um eine UDP-Nachricht zu senden.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSettings
Ein Zeiger auf die Nachrichteneinstellungen oder auf NULL, um die Standardeinstellungen zu verwenden.
Rückgabe
Ein Zeiger auf den Nachrichtenpuffer oder NULL, wenn keine Nachrichtenpuffer verfügbar sind oder die Parameter ungültig sind.
Weitere Informationen:
otMessageFree

otUdpOpen

otError otUdpOpen(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otUdpReceive aCallback,
  void *aContext
)

Öffnen Sie einen UDP-/IPv6-Socket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
[in] aCallback
Ein Zeiger auf die Rückruffunktion der Anwendung.
[in] aContext
Ein Zeiger auf anwendungsspezifischen Kontext.
Rückgabewerte
OT_ERROR_NONE
Der Socket wurde geöffnet.
OT_ERROR_FAILED
Der Socket konnte nicht geöffnet werden.

otUdpRemoveReceiver

otError otUdpRemoveReceiver(
  otInstance *aInstance,
  otUdpReceiver *aUdpReceiver
)

Diese Funktion entfernt einen UDP-Empfänger.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aUdpReceiver
Ein Zeiger auf den UDP-Empfänger.
Rückgabewerte
OT_ERROR_NONE
Der Empfänger wurde entfernt.
OT_ERROR_NOT_FOUND
Der UDP-Empfänger wurde nicht hinzugefügt.

otUdpSend

otError otUdpSend(
  otInstance *aInstance,
  otUdpSocket *aSocket,
  otMessage *aMessage,
  const otMessageInfo *aMessageInfo
)

Senden Sie eine UDP-/IPv6-Nachricht.

Wenn der Rückgabewert OT_ERROR_NONE lautet, übernimmt OpenThread die Inhaberschaft von aMessage und der Aufrufer sollte nicht mehr auf aMessage verweisen. Wenn der Rückgabewert nicht OT_ERROR_NONE lautet, behält der Aufrufer die Inhaberschaft von aMessage bei und gibt aMessage frei, wenn der Nachrichtenpuffer nicht mehr benötigt wird.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aSocket
Ein Zeiger auf eine UDP-Socket-Struktur.
[in] aMessage
Ein Zeiger auf einen Nachrichtenpuffer.
[in] aMessageInfo
Ein Zeiger auf eine Nachrichteninfostruktur.

Details
Rückgabewerte
OT_ERROR_NONE
Der Versand der Nachricht wurde geplant.
OT_ERROR_INVALID_ARGS
Ungültige Argumente sind angegeben.
OT_ERROR_NO_BUFS
Der Puffer reicht nicht aus, um die UDP- und IPv6-Header hinzuzufügen.

otUdpSendDatagram

otError otUdpSendDatagram(
  otInstance *aInstance,
  otMessage *aMessage,
  otMessageInfo *aMessageInfo
)

Diese Funktion sendet eine UDP-Nachricht ohne Socket.

Details
Parameter
[in] aInstance
Ein Zeiger auf eine OpenThread-Instanz.
[in] aMessage
Ein Zeiger auf eine Nachricht ohne UDP-Header.
[in] aMessageInfo
Ein Zeiger auf eine Nachrichteninformationen, die mit aMessage verknüpft sind.
Rückgabewerte
OT_ERROR_NONE
Die Nachricht wurde erfolgreich in eine Ausgabeschnittstelle in die Warteschlange gestellt.
OT_ERROR_NO_BUFS
Der Puffer reicht nicht aus, um die IPv6-Header hinzuzufügen.

Ressourcen

Die OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen und einen Beitrag zu unserer Dokumentation finden Sie unter Ressourcen.