nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

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

Podsumowanie

Ponieważ system jest odpowiednio skonfigurowany, Nest Inet Layer zawiera metody interakcji z punktami końcowymi transportu UDP (gniazda SOCK_DGRAM w systemach Linux i systemach opartych na BSD) lub blokami kontrolnymi protokołu LwIP UDP.

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 odśwież jego pamięć.
GetBoundInterface(void)
InterfaceId
Pobierz powiązany interfejs z tego punktu końcowego.
GetBoundPort(void)
uint16_t
Listen(void)
Przygotuj punkt końcowy do odbierania wiadomości 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 dla punktu końcowego
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach nie ma opcjonalnie określonego interfejsu.
INET_ERROR_WRONG_PROTOCOL_TYPE
Pole addrType nie pasuje do wyrażenia IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType ma wartość kIPAddressType_Any lub typ addr nie jest równy addrType.
other
błąd innego systemu lub platformy

W LwIP tej metody nie można wywoływać z zablokowaną 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 adresu IP.
[in] intf
wskaźnik interfejsu sieci.
Zwracane wartości
INET_NO_ERROR
sukces: punkt końcowy powiązany z adresem
INET_NO_MEMORY
za mało pamięci dla punktu końcowego
INET_ERROR_NOT_IMPLEMENTED
nie ukończono implementacji systemu.
INET_ERROR_UNKNOWN_INTERFACE
Na niektórych platformach interfejs jest niedostępny.
other
błąd innego systemu lub platformy

W LwIP tej metody nie można wywoływać z zablokowaną 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 obsługi zdarzeń komunikacji.

W systemach LwIP tej metody nie można wywoływać z dostępną blokadą stosu LwIP,

bezpłatnie

void Free(
  void
)

Zamknij punkt końcowy i odśwież jego pamięć.

Wywołuje metodę Close, a następnie metodę InetLayerBasis::Release, aby zwrócić obiekt do puli pamięci.

W systemach LwIP tej metody nie można wywoływać z dostępną blokadą stosu LwIP,

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Pobierz powiązany interfejs z tego punktu końcowego.

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 wiadomości UDP.

Jeśli State ma już wartość kState_Listening, nie jest wykonywana żadna operacja. W przeciwnym razie mState ma wartość kState_Listening, a punkt końcowy jest gotowy na odbieranie komunikatów UDP zgodnie ze 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 LwIP tej metody nie można wywoływać z blokadą stosu LwIP, która została już pozyskana

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 wiadomość UDP
[in] sendFlags
flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
powodzenie: msg jest w kolejce do transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i adres powiązanego interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całej wiadomości UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach do transmisji została dodana tylko skrócona część zapisu msg.
other
błąd innego 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 wiadomość UDP
[in] sendFlags
flagi opcji przesyłania
Zwracane wartości
INET_NO_ERROR
powodzenie: msg jest w kolejce do transmisji.
INET_ERROR_NOT_SUPPORTED
system nie obsługuje żądanej operacji.
INET_ERROR_WRONG_ADDRESS_TYPE
adres docelowy i adres powiązanego interfejsu nie mają zgodnych wersji protokołu lub typu adresu.
INET_ERROR_MESSAGE_TOO_LONG
msg nie zawiera całej wiadomości UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Na niektórych platformach do transmisji została dodana tylko skrócona część zapisu msg.
other
błąd innego systemu lub platformy