nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Obiekty tej klasy reprezentują punkty końcowe transportu UDP.

Podsumowanie

Nest Inet Layer szyfruje metody interakcji z punktami końcowymi transportu UDP (gniazda SOCK_DGRAM w systemach Linux i systemach pochodnych BSD) lub bloki kontroli protokołu UDP LwIP, ponieważ system jest odpowiednio skonfigurowany.

Dziedziczenie

Dziedziczy z: nl::Inet::IPEndPointBasis

Funkcje publiczne

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Powiąż punkt końcowy z adresem IP interfejsu.
BindInterface(IPAddressType addrType, InterfaceId intf)
Powiąż punkt końcowy z interfejsem sieci.
Close(void)
void
Zamknij punkt końcowy.
Free(void)
void
Zamknij punkt końcowy i odtwórz jego pamięć.
GetBoundInterface(void)
InterfaceId
Pobierz powiązany interfejs w tym punkcie końcowym.
GetBoundPort(void)
uint16_t
Listen(void)
Przygotuj punkt końcowy do odbierania komunikatów UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Wyślij wiadomość UDP do określonego miejsca docelowego.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Synonim słowa SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Wyślij wiadomość UDP na określony adres docelowy.

Funkcje publiczne

Powiąż

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

Powiąż punkt końcowy z adresem IP interfejsu.

Wiąże punkt końcowy z określonym adresem IP interfejsu sieci.

Szczegóły
Parametry
[in] addrType
wersja protokołu adresu IP
[in] addr
adres IP (musi być adresem interfejsu).
[in] port
port UDP
[in] intfId
opcjonalny wskaźnik interfejsu sieci,
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_ERROR_INCORRECT_STATE
punkt końcowy został wcześniej powiązany
INET_NO_MEMORY
Za mało pamięci, aby uruchomić punkt końcowy
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach opcjonalnie określony interfejs nie jest dostępny.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType nie pasuje do IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType to kIPAddressType_Any lub typ addr jest inny niż addrType.
other
inny błąd systemu lub platformy

W przypadku LwIP tej metody nie można wywoływać z uzyskaną blokadą stosu LwIP.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Powiąż punkt końcowy z interfejsem sieci.

Wiąże punkt końcowy z określonym adresem IP interfejsu sieci.

Szczegóły
Parametry
[in] addrType
wersję protokołu dla danego adresu IP.
[in] intf
wskaźnika interfejsu sieci.
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_NO_MEMORY
Za mało pamięci, aby uruchomić punkt końcowy
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach interfejs jest niedostępny.
other
inny błąd systemu lub platformy

W przypadku LwIP tej metody nie można wywoływać z uzyskaną blokadą stosu LwIP.

Zamknij

void Close(
  void
)

Zamknij punkt końcowy.

Jeśli mState != kState_Closed, zamyka punkt końcowy, usuwając go z zestawu punktów końcowych kwalifikujących się do zdarzeń komunikacji.

W systemach LwIP nie można wywoływać tej metody z uzyskaną blokadą stosu LwIP.

Bezpłatnie

void Free(
  void
)

Zamknij punkt końcowy i odtwórz jego pamięć.

Wywołuje metodę Close, a następnie metodę InetLayerBasis::Release, która zwraca obiekt do puli pamięci.

W systemach LwIP nie można wywoływać tej metody z uzyskaną blokadą stosu LwIP.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Pobierz powiązany interfejs w tym punkcie końcowym.

Szczegóły
Zwroty
InterfaceId – identyfikator powiązanego interfejsu.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Posłuchaj

INET_ERROR Listen(
  void
)

Przygotuj punkt końcowy do odbierania komunikatów UDP.

Jeśli State ma już wartość kState_Listening, nie są wykonywane żadne działania. W przeciwnym razie mState ma wartość kState_Listening, a punkt końcowy jest przygotowany do odbierania wiadomości UDP zgodnie z semantyką platformy.

Szczegóły
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy gotowy do odbierania wiadomości.
INET_ERROR_INCORRECT_STATE
Punkt końcowy już nasłuchuje.

W przypadku LwIP tej metody nie można wywoływać, gdy blokada stosu LwIP jest już uzyskana

SendMsg

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

Wyślij wiadomość UDP do określonego miejsca docelowego.

 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.

Szczegóły
Parametry
[in] pktInfo
informacje o źródle i miejscu docelowym wiadomości UDP
[in] msg
bufor pakietów zawierający komunikat UDP,
[in] sendFlags
opcjonalne flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
sukces: aplikacja msg została dodana do kolejki transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i powiązany adres interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całego komunikatu UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach tylko skrócona część msg została dodana do kolejki transmisji.
other
inny błąd systemu lub platformy

SendTo

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

Synonim słowa 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
)

Wyślij wiadomość UDP na określony adres docelowy.

 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.

Szczegóły
Parametry
[in] addr
docelowy adres IP
[in] port
docelowy port UDP
[in] intfId
opcjonalny wskaźnik interfejsu sieci,
[in] msg
bufor pakietów zawierający komunikat UDP,
[in] sendFlags
opcjonalne flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
sukces: aplikacja msg została dodana do kolejki transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i powiązany adres interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całego komunikatu UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach tylko skrócona część msg została dodana do kolejki transmisji.
other
inny błąd systemu lub platformy