нл:: Инет:: UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Объекты этого класса представляют конечные точки транспорта UDP.

Краткое содержание

Nest Inet Layer инкапсулирует методы взаимодействия с конечными точками транспорта UDP (сокетами SOCK_DGRAM в системах Linux и BSD) или блоками управления протоколом LwIP UDP, если система настроена соответствующим образом.

Наследование

Наследуется от: nl::Inet::IPEndPointBasis

Общественные функции

Bind (IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Привяжите конечную точку к IP-адресу интерфейса.
BindInterface (IPAddressType addrType, InterfaceId intf)
Привяжите конечную точку к сетевому интерфейсу.
Close (void)
void
Закройте конечную точку.
Free (void)
void
Закройте конечную точку и перезапустите ее память.
GetBoundInterface (void)
InterfaceId
Получите связанный интерфейс на этой конечной точке.
GetBoundPort (void)
uint16_t
Listen (void)
Подготовьте конечную точку для приема сообщений UDP.
SendMsg (const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Отправьте UDP-сообщение в указанный пункт назначения.
SendTo ( IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Синоним SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags) .
SendTo ( IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Отправьте UDP-сообщение на указанный адрес назначения.

Общественные функции

Связывать

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

Привяжите конечную точку к IP-адресу интерфейса.

Привязывает конечную точку к указанному IP-адресу сетевого интерфейса.

Подробности
Параметры
[in] addrType
версия протокола IP-адреса
[in] addr
IP-адрес (должен быть адресом интерфейса)
[in] port
UDP-порт
[in] intfId
дополнительный индикатор сетевого интерфейса
Возвращаемые значения
INET_NO_ERROR
успех: конечная точка привязана к адресу
INET_ERROR_INCORRECT_STATE
конечная точка была привязана ранее
INET_NO_MEMORY
недостаточно памяти для конечной точки
INET_ERROR_UNKNOWN_INTERFACE
На некоторых платформах опционально указанный интерфейс отсутствует.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType не соответствует IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrTypekIPAddressType_Any , или тип addr не равен addrType .
other
другая ошибка системы или платформы

В LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

BindИнтерфейс

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Привяжите конечную точку к сетевому интерфейсу.

Привязывает конечную точку к указанному IP-адресу сетевого интерфейса.

Подробности
Параметры
[in] addrType
версия протокола IP-адреса.
[in] intf
индикатор сетевого интерфейса.
Возвращаемые значения
INET_NO_ERROR
успех: конечная точка привязана к адресу
INET_NO_MEMORY
недостаточно памяти для конечной точки
INET_ERROR_NOT_IMPLEMENTED
реализация системы не завершена.
INET_ERROR_UNKNOWN_INTERFACE
На некоторых платформах интерфейс отсутствует.
other
другая ошибка системы или платформы

В LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

Закрывать

void Close(
  void
)

Закройте конечную точку.

Если mState != kState_Closed , то закрывает конечную точку, удаляя ее из набора конечных точек, имеющих право на события связи.

В системах LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

Бесплатно

void Free(
  void
)

Закройте конечную точку и перезапустите ее память.

Вызывает метод Close , затем вызывает метод InetLayerBasis::Release , чтобы вернуть объект в его пул памяти.

В системах LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

GetBoundИнтерфейс

InterfaceId GetBoundInterface(
  void
)

Получите связанный интерфейс на этой конечной точке.

Подробности
Возврат
InterfaceId Идентификатор связанного интерфейса.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Слушать

INET_ERROR Listen(
  void
)

Подготовьте конечную точку для приема сообщений UDP.

Если State уже имеет kState_Listening , то никакая операция не выполняется, в противном случае mState устанавливается значение kState_Listening , и конечная точка готовится к получению сообщений UDP в соответствии с семантикой платформы.

Подробности
Возвращаемые значения
INET_NO_ERROR
успех: конечная точка готова принимать сообщения.
INET_ERROR_INCORRECT_STATE
конечная точка уже прослушивает.

В LwIP этот метод нельзя вызывать с уже полученной блокировкой стека LwIP.

ОтправитьСообщение

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

Отправьте UDP-сообщение в указанный пункт назначения.

 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.

Подробности
Параметры
[in] pktInfo
информация об источнике и назначении для сообщения UDP
[in] msg
буфер пакетов, содержащий сообщение UDP
[in] sendFlags
дополнительные флаги опций передачи
Возвращаемые значения
INET_NO_ERROR
успех: msg поставлено в очередь для передачи.
INET_ERROR_NOT_SUPPORTED
система не поддерживает запрошенную операцию.
INET_ERROR_WRONG_ADDRESS_TYPE
адрес назначения и адрес привязанного интерфейса не имеют совпадающих версий протокола или типа адреса.
INET_ERROR_MESSAGE_TOO_LONG
msg не содержит всего UDP-сообщения.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
На некоторых платформах в очередь на передачу помещалась только усеченная часть msg .
other
другая ошибка системы или платформы

Отправить

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

Синоним SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags) .

Отправить

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

Отправьте UDP-сообщение на указанный адрес назначения.

 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.

Подробности
Параметры
[in] addr
IP-адрес назначения
[in] port
UDP-порт назначения
[in] intfId
дополнительный индикатор сетевого интерфейса
[in] msg
буфер пакетов, содержащий сообщение UDP
[in] sendFlags
дополнительные флаги опций передачи
Возвращаемые значения
INET_NO_ERROR
успех: msg поставлено в очередь для передачи.
INET_ERROR_NOT_SUPPORTED
система не поддерживает запрошенную операцию.
INET_ERROR_WRONG_ADDRESS_TYPE
адрес назначения и адрес привязанного интерфейса не имеют совпадающих версий протокола или типа адреса.
INET_ERROR_MESSAGE_TOO_LONG
msg не содержит всего UDP-сообщения.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
На некоторых платформах в очередь на передачу помещалась только усеченная часть msg .
other
другая ошибка системы или платформы