nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Os objetos dessa classe representam endpoints de transporte UDP.

Resumo

A camada Nest Inet encapsula métodos para interagir com endpoints de transporte UDP (soquetes SOCK_DGRAM em sistemas derivados Linux e BSD) ou blocos de controle do protocolo LwIP UDP, conforme a configuração do sistema.

Herança

Herda de: nl::Inet::IPEndPointBasis

Funções públicas

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Vincular o endpoint a um endereço IP de interface.
BindInterface(IPAddressType addrType, InterfaceId intf)
Vincular o endpoint a uma interface de rede.
Close(void)
void
Feche o endpoint.
Free(void)
void
Feche o endpoint e recicle a memória dele.
GetBoundInterface(void)
InterfaceId
Receba a interface vinculada neste endpoint.
GetBoundPort(void)
uint16_t
Listen(void)
Prepare o endpoint para receber mensagens UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envia uma mensagem UDP para um destino especificado.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Um sinônimo para SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Envia uma mensagem UDP para o endereço de destino especificado.

Funções públicas

Vincular

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

Vincular o endpoint a um endereço IP de interface.

Vincula o endpoint ao endereço IP da interface de rede especificado.

Detalhes
Parâmetros
[in] addrType
a versão do protocolo do endereço IP
[in] addr
o endereço IP (deve ser um endereço de interface)
[in] port
a porta UDP
[in] intfId
um indicador de interface de rede opcional
Valores de retorno
INET_NO_ERROR
sucesso: endpoint vinculado ao endereço
INET_ERROR_INCORRECT_STATE
endpoint foi vinculado anteriormente
INET_NO_MEMORY
memória insuficiente para o endpoint
INET_ERROR_UNKNOWN_INTERFACE
Em algumas plataformas, a interface especificada opcionalmente não está presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType não corresponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType é kIPAddressType_Any ou o tipo de addr não é igual a addrType.
other
outro erro do sistema ou da plataforma

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Vincular o endpoint a uma interface de rede.

Vincula o endpoint ao endereço IP da interface de rede especificado.

Detalhes
Parâmetros
[in] addrType
a versão do protocolo do endereço IP.
[in] intf
da interface de rede.
Valores de retorno
INET_NO_ERROR
sucesso: endpoint vinculado ao endereço
INET_NO_MEMORY
memória insuficiente para o endpoint
INET_ERROR_NOT_IMPLEMENTED
implementação do sistema não concluída.
INET_ERROR_UNKNOWN_INTERFACE
Em algumas plataformas, a interface não está presente.
other
outro erro do sistema ou da plataforma

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido.

Fechar

void Close(
  void
)

Feche o endpoint.

Se for mState != kState_Closed, fecha o endpoint, removendo-o do conjunto de endpoints qualificados para eventos de comunicação.

Em sistemas LwIP, esse método não pode ser chamado com o bloqueio de pilha LwIP já adquirido.

Grátis

void Free(
  void
)

Feche o endpoint e recicle a memória dele.

Invoca o método Close e, em seguida, invoca o método InetLayerBasis::Release para retornar o objeto ao pool de memória.

Em sistemas LwIP, esse método não pode ser chamado com o bloqueio de pilha LwIP já adquirido.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Receba a interface vinculada neste endpoint.

Detalhes
Retornos
InterfaceId O ID da interface vinculada.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Ouvir

INET_ERROR Listen(
  void
)

Prepare o endpoint para receber mensagens UDP.

Se State já for kState_Listening, nenhuma operação será realizada. Caso contrário, mState será definido como kState_Listening e o endpoint estará preparado para receber mensagens UDP, de acordo com a semântica da plataforma.

Detalhes
Valores de retorno
INET_NO_ERROR
sucesso: o endpoint está pronto para receber mensagens.
INET_ERROR_INCORRECT_STATE
endpoint já está ouvindo.

No LwIP, esse método não pode ser chamado com o bloqueio de pilha do LwIP já adquirido

SendMsg

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

Envia uma mensagem UDP para um destino especificado.

 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.

Detalhes
Parâmetros
[in] pktInfo
informações de origem e destino da mensagem UDP
[in] msg
um buffer de pacote contendo a mensagem UDP
[in] sendFlags
flags de opção de transmissão opcionais
Valores de retorno
INET_NO_ERROR
sucesso: msg está na fila para transmissão.
INET_ERROR_NOT_SUPPORTED
o sistema não suporta a operação solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
o endereço de destino e o endereço da interface vinculada não têm versões de protocolo ou tipo de endereço correspondentes.
INET_ERROR_MESSAGE_TOO_LONG
msg não contém toda a mensagem UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Em algumas plataformas, apenas uma parte truncada de msg foi colocada na fila para transmissão.
other
outro erro do sistema ou da plataforma

SendTo

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

Um sinônimo para 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
)

Envia uma mensagem UDP para o endereço de destino especificado.

 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.

Detalhes
Parâmetros
[in] addr
o endereço IP de destino
[in] port
para a porta UDP de destino.
[in] intfId
um indicador de interface de rede opcional
[in] msg
o buffer de pacote que contém a mensagem UDP
[in] sendFlags
flags de opção de transmissão opcionais
Valores de retorno
INET_NO_ERROR
sucesso: msg está na fila para transmissão.
INET_ERROR_NOT_SUPPORTED
o sistema não suporta a operação solicitada.
INET_ERROR_WRONG_ADDRESS_TYPE
o endereço de destino e o endereço da interface vinculada não têm versões de protocolo ou tipo de endereço correspondentes.
INET_ERROR_MESSAGE_TOO_LONG
msg não contém toda a mensagem UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Em algumas plataformas, apenas uma parte truncada de msg foi colocada na fila para transmissão.
other
outro erro do sistema ou da plataforma