nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

Gli oggetti di questa classe rappresentano gli endpoint di trasporto UDP.

Riepilogo

Nest Inet Layer incapsula i metodi per interagire con gli endpoint di trasporto UDP (socket SOCK_DGRAM su sistemi Linux e BSD) o con i blocchi di controllo del protocollo LwIP UDP, in quanto il sistema è configurato di conseguenza.

Eredità

Eredita da: nl::Inet::IPEndPointBasis

Funzioni pubbliche

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Associa l'endpoint a un indirizzo IP dell'interfaccia.
BindInterface(IPAddressType addrType, InterfaceId intf)
Associa l'endpoint a un'interfaccia di rete.
Close(void)
void
Chiudi l'endpoint.
Free(void)
void
Chiudi l'endpoint e ricicla la memoria.
GetBoundInterface(void)
InterfaceId
Ottieni l'interfaccia associata su questo endpoint.
GetBoundPort(void)
uint16_t
Listen(void)
Prepara l'endpoint per la ricezione dei messaggi UDP.
SendMsg(const IPPacketInfo *pktInfo, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Invia un messaggio UDP a una destinazione specificata.
SendTo(IPAddress addr, uint16_t port, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Un sinonimo di SendTo(addr, port, INET_NULL_INTERFACEID, msg, sendFlags).
SendTo(IPAddress addr, uint16_t port, InterfaceId intfId, Weave::System::PacketBuffer *msg, uint16_t sendFlags)
Invia un messaggio UDP all'indirizzo di destinazione specificato.

Funzioni pubbliche

Associa

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

Associa l'endpoint a un indirizzo IP dell'interfaccia.

Associa l'endpoint all'indirizzo IP dell'interfaccia di rete specificato.

Dettagli
Parametri
[in] addrType
la versione del protocollo dell'indirizzo IP
[in] addr
L'indirizzo IP (deve essere un indirizzo di interfaccia)
[in] port
la porta UDP
[in] intfId
un indicatore di interfaccia di rete facoltativo
Valori restituiti
INET_NO_ERROR
successo: endpoint associato all'indirizzo
INET_ERROR_INCORRECT_STATE
endpoint è stato associato in precedenza
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia facoltativa specificata non è presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType non corrisponde a IPVer.
INET_ERROR_WRONG_ADDRESS_TYPE
addrType è kIPAddressType_Any oppure il tipo di addr è diverso da addrType.
other
un altro errore di sistema o di piattaforma

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito.

BindInterface

INET_ERROR BindInterface(
  IPAddressType addrType,
  InterfaceId intf
)

Associa l'endpoint a un'interfaccia di rete.

Associa l'endpoint all'indirizzo IP dell'interfaccia di rete specificato.

Dettagli
Parametri
[in] addrType
la versione di protocollo dell'indirizzo IP.
[in] intf
dell'interfaccia di rete.
Valori restituiti
INET_NO_ERROR
successo: endpoint associato all'indirizzo
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia non è presente.
other
un altro errore di sistema o di piattaforma

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito.

Chiudi

void Close(
  void
)

Chiudi l'endpoint.

Se mState != kState_Closed, l'endpoint viene chiuso e rimosso dall'insieme di endpoint idonei per gli eventi di comunicazione.

Nei sistemi LwIP, questo metodo non deve essere chiamato se il blocco dello stack LwIP è già acquisito.

Gratis

void Free(
  void
)

Chiudi l'endpoint e ricicla la memoria.

Richiama il metodo Close, quindi richiama il metodo InetLayerBasis::Release per restituire l'oggetto nel relativo pool di memoria.

Nei sistemi LwIP, questo metodo non deve essere chiamato se il blocco dello stack LwIP è già acquisito.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Ottieni l'interfaccia associata su questo endpoint.

Dettagli
Restituisce
InterfaceId L'ID dell'interfaccia associata.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Ascolta

INET_ERROR Listen(
  void
)

Prepara l'endpoint per la ricezione dei messaggi UDP.

Se State è già kState_Listening, non viene eseguita alcuna operazione, altrimenti mState viene impostato su kState_Listening e l'endpoint viene preparato per la ricezione di messaggi UDP, in base alla semantica della piattaforma.

Dettagli
Valori restituiti
INET_NO_ERROR
riuscita: endpoint pronto a ricevere messaggi.
INET_ERROR_INCORRECT_STATE
l'endpoint è già in ascolto.

Su LwIP, questo metodo non deve essere chiamato con il blocco dello stack LwIP già acquisito

SendMsg

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

Invia un messaggio UDP a una destinazione specificata.

 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.

Dettagli
Parametri
[in] pktInfo
informazioni di origine e di destinazione per il messaggio UDP
[in] msg
un buffer di pacchetti contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
riuscita: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
le versioni di protocollo o il tipo di indirizzo non corrispondono all'indirizzo di destinazione e all'indirizzo dell'interfaccia associata.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore di sistema o di piattaforma

SendTo

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

Un sinonimo di 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
)

Invia un messaggio UDP all'indirizzo di destinazione specificato.

 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.

Dettagli
Parametri
[in] addr
l'indirizzo IP di destinazione
[in] port
la porta UDP di destinazione
[in] intfId
un indicatore di interfaccia di rete facoltativo
[in] msg
il buffer dei pacchetti contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
riuscita: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
le versioni di protocollo o il tipo di indirizzo non corrispondono all'indirizzo di destinazione e all'indirizzo dell'interfaccia associata.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore di sistema o di piattaforma