nl::Inet::UDPEndPoint

#include <src/inet/UDPEndPoint.h>

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

Riepilogo

Nest Inet Layer racchiude i metodi per interagire con gli endpoint di trasporto UDP (socket SOCK_DGRAM su sistemi Linux e derivati da BSD) o con i blocchi di controllo del protocollo LwIP UDP, poiché il sistema viene configurato di conseguenza.

Eredità

Eredita da: nl::Inet::IPEndPointBasis

Funzioni pubbliche

Bind(IPAddressType addrType, IPAddress addr, uint16_t port, InterfaceId intfId)
Associare l'endpoint a un indirizzo IP di interfaccia.
BindInterface(IPAddressType addrType, InterfaceId intf)
Associare l'endpoint a un'interfaccia di rete.
Close(void)
void
Chiudi l'endpoint.
Free(void)
void
Chiudi l'endpoint e ricicla la relativa memoria.
GetBoundInterface(void)
InterfaceId
Ottieni l'interfaccia associata su questo endpoint.
GetBoundPort(void)
uint16_t
Listen(void)
Prepara l'endpoint per ricevere 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)
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
)

Associare 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 facoltativo dell'interfaccia di rete
Valori restituiti
INET_NO_ERROR
success: 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 specificata facoltativamente 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 non è uguale a addrType.
other
un altro errore del sistema o della 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
)

Associare 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 restituiti
INET_NO_ERROR
success: 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 del sistema o della 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, chiude l'endpoint rimuovendolo dall'insieme di endpoint idonei per gli eventi di comunicazione.

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

Senza costi

void Free(
  void
)

Chiudi l'endpoint e ricicla la relativa memoria.

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

Sui sistemi LwIP, questo metodo non deve essere chiamato con 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 ricevere messaggi UDP.

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

Dettagli
Valori restituiti
INET_NO_ERROR
operazione riuscita: endpoint pronto a ricevere messaggi.
INET_ERROR_INCORRECT_STATE
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 sull'origine e sulla destinazione del messaggio UDP
[in] msg
un buffer di pacchetti contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
operazione riuscita: 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 dell'interfaccia associata 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 troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore del sistema o della piattaforma

SendTo

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

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 facoltativo dell'interfaccia di rete
[in] msg
il buffer del pacchetto contenente il messaggio UDP
[in] sendFlags
flag opzioni di trasmissione facoltativi
Valori restituiti
INET_NO_ERROR
operazione riuscita: 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 dell'interfaccia associata 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 troncata di msg è stata messa in coda per la trasmissione.
other
un altro errore del sistema o della piattaforma