nl:: Inetto:: UDPEndPoint

#include <src/inet/UDPEndPoint.h>

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

Sommario

Nest Inet Layer incapsula metodi per interagire con endpoint di trasporto UDP (socket SOCK_DGRAM su sistemi Linux e derivati ​​da BSD) o blocchi di controllo del protocollo LwIP UDP, poiché 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 di 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 sua memoria.
GetBoundInterface (void)
InterfaceId
Ottieni l'interfaccia associata su questo endpoint.
GetBoundPort (void)
uint16_t
Listen (void)
Preparare l'endpoint per ricevere i 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

legare

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

Associa l'endpoint a un indirizzo IP di 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 opzionale
Valori di ritorno
INET_NO_ERROR
successo: endpoint vincolato all'indirizzo
INET_ERROR_INCORRECT_STATE
l'endpoint è stato associato in precedenza
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia specificata facoltativamente non è presente.
INET_ERROR_WRONG_PROTOCOL_TYPE
addrType non corrisponde IPVer .
INET_ERROR_WRONG_ADDRESS_TYPE
addrType è kIPAddressType_Any , o il tipo di addr non è uguale a addrType .
other
un altro errore di sistema o 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 del protocollo dell'indirizzo IP.
[in] intf
indicatore dell'interfaccia di rete.
Valori di ritorno
INET_NO_ERROR
successo: endpoint vincolato all'indirizzo
INET_NO_MEMORY
memoria insufficiente per l'endpoint
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completa.
INET_ERROR_UNKNOWN_INTERFACE
Su alcune piattaforme, l'interfaccia non è presente.
other
un altro errore di sistema o piattaforma

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

Vicino

void Close(
  void
)

Chiudi l'endpoint.

Se mState != kState_Closed , poi chiude l'endpoint, rimuovendolo dal set di endpoint che possono beneficiare di eventi di comunicazione.

Sui sistemi LwIP, questo metodo non deve essere chiamato con lo stack lock LwIP già acquisito.

Gratuito

void Free(
  void
)

Chiudere l'endpoint e riciclare la sua memoria.

Richiama il Close metodo, poi richiama InetLayerBasis::Release metodo per restituire l'oggetto al suo pool di memoria.

Sui sistemi LwIP questo metodo non deve essere chiamato con lo stack lock LwIP già acquisito.

GetBoundInterface

InterfaceId GetBoundInterface(
  void
)

Ottieni l'interfaccia associata su questo endpoint.

Dettagli
ritorna
InterfaceId L'ID dell'interfaccia associata.

GetBoundPort

uint16_t GetBoundPort(
  void
)

Ascolta

INET_ERROR Listen(
  void
)

Preparare l'endpoint per ricevere i messaggi UDP.

Se State è già kState_Listening , quindi nessuna operazione viene eseguita, altrimenti il mState è impostato su kState_Listening e l'endpoint è pronta a messaggi UDP ricevuti, secondo la semantica della piattaforma.

Dettagli
Valori di ritorno
INET_NO_ERROR
success: endpoint pronto a ricevere messaggi.
INET_ERROR_INCORRECT_STATE
l'endpoint è già in ascolto.

Su LwIP, questo metodo non deve essere chiamato con lo stack lock LwIP già acquisito

InviaMsg

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 sull'origine e sulla destinazione del messaggio UDP
[in] msg
un buffer di pacchetto contenente il messaggio UDP
[in] sendFlags
flag di opzione di trasmissione opzionali
Valori di ritorno
INET_NO_ERROR
successo: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
l'indirizzo di destinazione e l'indirizzo di interfaccia associato non hanno versioni di protocollo o tipo di indirizzo corrispondenti.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncato di msg è stato in coda per trasmissione.
other
un altro errore di sistema o piattaforma

Inviare a

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) .

Inviare a

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 opzionale
[in] msg
il buffer del pacchetto contenente il messaggio UDP
[in] sendFlags
flag di opzione di trasmissione opzionali
Valori di ritorno
INET_NO_ERROR
successo: msg è in coda per la trasmissione.
INET_ERROR_NOT_SUPPORTED
il sistema non supporta l'operazione richiesta.
INET_ERROR_WRONG_ADDRESS_TYPE
l'indirizzo di destinazione e l'indirizzo di interfaccia associato non hanno versioni di protocollo o tipo di indirizzo corrispondenti.
INET_ERROR_MESSAGE_TOO_LONG
msg non contiene l'intero messaggio UDP.
INET_ERROR_OUTBOUND_MESSAGE_TRUNCATED
Su alcune piattaforme, solo una parte troncato di msg è stato in coda per trasmissione.
other
un altro errore di sistema o piattaforma