nl::Inet::TCPEndPoint

#include <src/inet/TCPEndPoint.h>

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

Riepilogo

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

Eredità

Eredita da: nl::Inet::EndPointBasis

Tipi pubblici

@10{
  kState_Ready = kBasisState_Closed,
  kState_Bound = 1,
  kState_Listening = 2,
  kState_Connecting = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_ReceiveShutdown = 6,
  kState_Closing = 7,
  kState_Closed = 8
}
enum
Stato dinamico di base dell'endpoint sottostante.
OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Tipo di funzione di gestione degli eventi di errore di accettazione della connessione.
OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Tipo di funzione di gestione dell'evento di creazione della connessione.
OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err) typedef
void(*
Tipo di funzione di gestione dell'evento di creazione della connessione.
OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) typedef
void(*
Tipo di funzione di gestione degli eventi di connessione ricevuta.
OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) typedef
void(*
Tipo di funzione di gestione degli eventi di ricezione dati.
OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len) typedef
void(*
Tipo di funzione di gestione degli eventi di trasmissione dati.
OnPeerCloseFunct)(TCPEndPoint *endPoint) typedef
void(*
Tipo di funzione di gestione dell'evento di ricezione a metà chiusura.
OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle) typedef
void(*
Il tipo di funzione di gestione degli indicatori TCP SendIdle modificata.

Attributi pubblici

OnAcceptError
Delegato della funzione di gestione dell'evento di accettazione della connessione dell'endpoint.
OnConnectComplete
Delegato per la gestione della funzione dell'evento di creazione della connessione dell'endpoint.
OnConnectionClosed
Delegato della funzione di gestione dell'evento di chiusura dell'endpoint.
OnConnectionReceived
La connessione dell'endpoint riceve il delegato della funzione di gestione degli eventi.
OnDataReceived
Delegato della funzione di gestione dell'evento di ricezione del testo del messaggio dell'endpoint.
OnDataSent
Il delegato della funzione di gestione dell'evento di gestione dell'evento di trasmissione del testo dei messaggi dell'endpoint.
OnPeerClose
Il delegato della funzione di gestione degli eventi per la chiusura a metà dell'endpoint.
OnTCPSendIdleChanged
Il delegato della funzione di gestione degli eventi della segnalazione dell'endpoint quando cambia il canale di invio di inattività della connessione TCP.
ReceiveEnabled
bool
Opzione di controllo che indica se l'applicazione sta ricevendo dati.
State
enum nl::Inet::TCPEndPoint::@10
Stato dinamico di base dell'endpoint sottostante.

Funzioni pubbliche

Abort(void)
void
Chiudi l'endpoint in modo non corretto, ovvero invia pacchetti RST.
AckReceive(uint16_t len)
Conferma la ricezione del testo del messaggio.
Bind(IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr)
Associare l'endpoint a un indirizzo IP di interfaccia.
Close(void)
Avvia la chiusura completa TCP, in altre parole, termina sia con l'invio che con la ricezione.
Connect(IPAddress addr, uint16_t port, InterfaceId intf)
Avvia una connessione TCP.
DisableKeepAlive(void)
Disattiva l'opzione "keep-alive" TCP.
DisableReceive(void)
void
Disattiva ricezione.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
Attiva l'opzione TCP "keep-alive".
EnableNoDelay(void)
EnableNoDelay.
EnableReceive(void)
void
Attiva la ricezione.
Free(void)
void
Avvia (o continua) la chiusura completa del protocollo TCP, ignorando gli errori.
GetLocalInfo(IPAddress *retAddr, uint16_t *retPort)
Estrai l'indirizzo IP e la porta TCP dell'endpoint locale.
GetPeerInfo(IPAddress *retAddr, uint16_t *retPort) const
Estrai l'indirizzo IP e la porta TCP dell'endpoint remoto.
IsConnected(void) const
bool
Estrai se viene stabilita la connessione TCP.
Listen(uint16_t backlog)
Prepara l'endpoint per ricevere messaggi TCP.
LogId(void)
uint16_t
Ottieni un identificatore per l'endpoint.
MarkActive(void)
void
Rileva l'attività, ossia reimposta il timer di inattività.
PendingReceiveLength(void)
uint32_t
Estrai la lunghezza dei dati ricevuti non confermati.
PendingSendLength(void)
uint32_t
Estrai la lunghezza dei dati in attesa di prima trasmissione.
PutBackReceivedData(Weave::System::PacketBuffer *data)
Spingi il testo del messaggio all'inizio della coda di ricezione.
Send(Weave::System::PacketBuffer *data, bool push)
Invia il testo del messaggio sulla connessione TCP.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Imposta un timeout per consentire la riuscita di Connect o la restituzione di un errore.
SetUserTimeout(uint32_t userTimeoutMillis)
Imposta l'opzione del socket TCP_USER_TIMEOUT TCP.
Shutdown(void)
Avvia TCP semitouso, in altre parole, terminato con l'invio.

Tipi pubblici

@10

 @10

Stato dinamico di base dell'endpoint sottostante.

Gli oggetti vengono inizializzati nello stato "pronto", quindi passano agli stati successivi corrispondenti a una semplificazione degli stati della macchina a stato di trasporto TCP.

Nota: l'enumerazione dello stato kBasisState_Closed è mappata su kState_Ready per motivi storici di compatibilità binaria. Il campo kState_Closed esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "in precedenza aperto ora chiuso" che esisteva in precedenza negli stati kState_Ready e kState_Closed.

Proprietà
kState_Bound

Vincolo a endpoint, ma non in ascolto.

kState_Closed

Endpoint chiuso, pronto per il rilascio.

kState_Closing

L'endpoint verrà chiuso in modo bidirezionale.

kState_Connected

Endpoint connesso, pronto per tx/rx.

kState_Connecting

Endpoint che tenta di connettersi.

kState_Listening

Endpoint che riceve connessioni.

kState_Ready

Endpoint inizializzato, ma non associato.

kState_ReceiveShutdown

L'endpoint ha risposto a metà chiusura.

kState_SendShutdown

L'endpoint ha avviato la chiusura a metà.

OnAcceptErrorFunct

void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Tipo di funzione di gestione degli eventi di errore di accettazione della connessione.

Fornisci una funzione di questo tipo al membro delegato OnAcceptError per elaborare gli eventi di errore di accettazione della connessione il giorno endPoint. L'argomento err fornisce dettagli specifici sul tipo di errore.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] err
Il motivo dell'errore.

OnConnectCompleteFunct

void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Tipo di funzione di gestione dell'evento di creazione della connessione.

Fornisci una funzione di questo tipo al membro delegato OnConnectComplete per elaborare gli eventi di creazione della connessione il giorno endPoint. L'argomento err distingue le connessioni riuscite da quelle non riuscite.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] err
INET_NO_ERROR in caso di esito positivo, altrimenti un altro codice.

OnConnectionClosedFunct

void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)

Tipo di funzione di gestione dell'evento di creazione della connessione.

Fornisci una funzione di questo tipo al membro delegato OnConnectionClosed per elaborare gli eventi di terminazione della connessione il giorno endPoint. L'argomento err distingue le terminazioni riuscite dagli errori.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] err
INET_NO_ERROR in caso di esito positivo, altrimenti un altro codice.

OnConnectionReceivedFunct

void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)

Tipo di funzione di gestione degli eventi di connessione ricevuta.

Fornisci una funzione di questo tipo al membro delegato OnConnectionReceived per elaborare gli eventi di ricezione della connessione il giorno listeningEndPoint. L'endpoint conEndPoint appena ricevuto si trova sull'indirizzo IP peerAddr e sulla porta TCP peerPort.

Dettagli
Parametri
[in] listeningEndPoint
L'endpoint TCP di ascolto.
[in] conEndPoint
L'endpoint TCP appena ricevuto.
[in] peerAddr
L'indirizzo IP del peer remoto.
[in] peerPort
La porta TCP del peer remoto.

OnDataReceivedFunct

void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)

Tipo di funzione di gestione degli eventi di ricezione dati.

Fornisci una funzione di questo tipo al membro delegato OnDataReceived per elaborare gli eventi di ricezione dati su endPoint, dove data è il testo del messaggio ricevuto.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] data
I dati ricevuti.

Un gestore di eventi di ricezione dati deve riconoscere i dati elaborati utilizzando il metodo AckReceive. È necessario richiamare anche il metodo Free sul buffer dei dati, a meno che non venga utilizzato PutBackReceivedData.

OnDataSentFunct

void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)

Tipo di funzione di gestione degli eventi di trasmissione dati.

Fornisci una funzione di questo tipo al membro delegato OnDataSent per elaborare gli eventi di trasmissione dati su endPoint, dove len è la lunghezza del testo del messaggio aggiunto alla finestra di trasmissione TCP, che è idonea per l'invio dallo stack di rete sottostante.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] len
Numero di byte aggiunti alla finestra di trasmissione.

OnPeerCloseFunct

void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)

Tipo di funzione di gestione dell'evento di ricezione a metà chiusura.

Fornisci una funzione di questo tipo al membro delegato OnPeerClose per elaborare gli eventi di terminazione della connessione il giorno endPoint.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.

OnTCPSendIdleChangedFunct

void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)

Il tipo di funzione di gestione degli indicatori TCP SendIdle modificata.

Fornisci una funzione di questo tipo al membro delegato OnTCPSendIdleChanged per elaborare l'evento del canale di invio di TCPEndPoint che cambia stato da inattivo a non inattivo.

Dettagli
Parametri
[in] endPoint
L'endpoint TCP associato all'evento.
[in] isIdle
True se il canale di invio dell'endpoint TCP è Inattivo, altrimenti false.

Attributi pubblici

OnAcceptError

OnAcceptErrorFunct OnAcceptError

Delegato della funzione di gestione dell'evento di accettazione della connessione dell'endpoint.

OnConnectComplete

OnConnectCompleteFunct OnConnectComplete

Delegato per la gestione della funzione dell'evento di creazione della connessione dell'endpoint.

OnConnectionClosed

OnConnectionClosedFunct OnConnectionClosed

Delegato della funzione di gestione dell'evento di chiusura dell'endpoint.

OnConnectionReceived

OnConnectionReceivedFunct OnConnectionReceived

La connessione dell'endpoint riceve il delegato della funzione di gestione degli eventi.

OnDataReceived

OnDataReceivedFunct OnDataReceived

Delegato della funzione di gestione dell'evento di ricezione del testo del messaggio dell'endpoint.

OnDataSent

OnDataSentFunct OnDataSent

Il delegato della funzione di gestione dell'evento di gestione dell'evento di trasmissione del testo dei messaggi dell'endpoint.

OnPeerClose

OnPeerCloseFunct OnPeerClose

Il delegato della funzione di gestione degli eventi per la chiusura a metà dell'endpoint.

OnTCPSendIdleChanged

OnTCPSendIdleChangedFunct OnTCPSendIdleChanged

Il delegato della funzione di gestione degli eventi della segnalazione dell'endpoint quando cambia il canale di invio di inattività della connessione TCP.

Viene utilizzato dai livelli superiori per intraprendere le azioni appropriate a seconda che i dati inviati siano stati inviati o meno in modo affidabile al peer.

ReceiveEnabled

bool ReceiveEnabled

Opzione di controllo che indica se l'applicazione sta ricevendo dati.

Stato

enum nl::Inet::TCPEndPoint::@10 State

Stato dinamico di base dell'endpoint sottostante.

Gli oggetti vengono inizializzati nello stato "pronto", quindi passano agli stati successivi corrispondenti a una semplificazione degli stati della macchina a stato di trasporto TCP.

Nota: l'enumerazione dello stato kBasisState_Closed è mappata su kState_Ready per motivi storici di compatibilità binaria. Il campo kState_Closed esistente serve a identificare separatamente la distinzione tra "non ancora aperto" e "in precedenza aperto ora chiuso" che esisteva in precedenza negli stati kState_Ready e kState_Closed.

Funzioni pubbliche

Interrompi

void Abort(
  void
)

Chiudi l'endpoint in modo non corretto, ovvero invia pacchetti RST.

AckReceive

INET_ERROR AckReceive(
  uint16_t len
)

Conferma la ricezione del testo del messaggio.

Utilizza questo metodo per confermare la ricezione di tutti o parte dei dati ricevuti. La semantica operativa non è definita se len è maggiore del totale dei dati ricevuti non confermati in sospeso.

Dettagli
Parametri
[in] len
di byte da confermare.
Valori restituiti
INET_NO_ERROR
operazione riuscita: ricezione confermata.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
INET_ERROR_CONNECTION_ABORTED
La connessione TCP non si apre più.

Associa

INET_ERROR Bind(
  IPAddressType addrType,
  IPAddress addr,
  uint16_t port,
  bool reuseAddr
)

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 TCP
[in] reuseAddr
per condividere l'associazione con altri endpoint
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_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.

Chiudi

INET_ERROR Close(
  void
)

Avvia la chiusura completa TCP, in altre parole, termina sia con l'invio che con la ricezione.

Dettagli
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
other
un altro errore del sistema o della piattaforma

Collega

INET_ERROR Connect(
  IPAddress addr,
  uint16_t port,
  InterfaceId intf
)

Avvia una connessione TCP.

 If possible, then this method initiates a TCP connection to the
 destination \c addr (with \c intf used as the scope
 identifier for IPv6 link-local destinations) and \c port.

Dettagli
Parametri
[in] addr
l'indirizzo IP di destinazione
[in] port
la porta TCP di destinazione
[in] intf
un indicatore facoltativo dell'interfaccia di rete
Valori restituiti
INET_NO_ERROR
operazione riuscita: msg è in coda per la trasmissione.
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
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 oppure l'indirizzo di destinazione è un indirizzo IPv6 locale rispetto al collegamento e intf non è specificato.
other
un altro errore del sistema o della piattaforma

DisableKeepAlive

INET_ERROR DisableKeepAlive(
  void
)

Disattiva l'opzione "keep-alive" TCP.

TCPEndPoint::DisableKeepAlive.

Disabilita i probe keepalive TCP sulla connessione TCP associata.

Dettagli
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
INET_ERROR_CONNECTION_ABORTED
La connessione TCP non si apre più.
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
other
un altro errore del sistema o della piattaforma

Nota:questo metodo può essere chiamato solo quando l'endpoint si trova in uno degli stati connessi. Questo metodo non produce alcun effetto se i keepalive non sono stati abilitati sull'endpoint.

DisableReceive

void DisableReceive(
  void
)

Disattiva ricezione.

Disattiva tutti i gestori di eventi. I dati inviati a un endpoint che disattiva la ricezione verranno confermati fino all'esaurimento della finestra di ricezione.

EnableKeepAlive

INET_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

Attiva l'opzione TCP "keep-alive".

TCPEndPoint::AbilitaKeepAlive.

Inizia la trasmissione automatica dei segmenti del probe "keep-alive" TCP ogni interval secondi. La connessione verrà interrotta automaticamente dopo aver ricevuto una risposta negativa o dopo l'invio di timeoutCount segmenti del probe senza ricevere una risposta positiva.

Dettagli
Parametri
[in] interval
in secondi tra le richieste del probe.
[in] timeoutCount
numero di probe da inviare prima del timeout.
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
INET_ERROR_CONNECTION_ABORTED
La connessione TCP non si apre più.
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
other
un altro errore del sistema o della piattaforma

Vedi RFC 1122, sezione 4.2.3.6 per i dettagli sulle specifiche.

Attiva i probe keepalive TCP sulla connessione TCP associata.

Nota:questo metodo può essere chiamato solo quando l'endpoint si trova in uno degli stati connessi. Questo metodo può essere richiamato più volte per regolare l'intervallo keepalive o il conteggio del timeout.

Dettagli
Parametri
interval
L'intervallo (in secondi) tra i probe keepalive. Questo valore controlla anche il tempo che intercorre tra l'invio dell'ultimo pacchetto di dati e la trasmissione del primo probe keepalive.
timeoutCount
Il numero massimo di probe non confermati prima che la connessione sia considerata non riuscita.

EnableNoDelay

INET_ERROR EnableNoDelay(
  void
)

EnableNoDelay.

TCPEndPoint::EnableNoDelay.

Disattiva l'algoritmo di buffering del traffico su TCP impostando le opzioni per il socket TCP_NORESULT.

EnableReceive

void EnableReceive(
  void
)

Attiva la ricezione.

Attiva tutti i gestori di eventi. I dati inviati a un endpoint che disattiva la ricezione verranno confermati fino all'esaurimento della finestra di ricezione.

Senza costi

void Free(
  void
)

Avvia (o continua) la chiusura completa del protocollo TCP, ignorando gli errori.

L'oggetto viene restituito al pool senza costi e tutti i riferimenti utente rimanenti non saranno più validi.

GetLocalInfo

INET_ERROR GetLocalInfo(
  IPAddress *retAddr,
  uint16_t *retPort
)

Estrai l'indirizzo IP e la porta TCP dell'endpoint locale.

Non utilizzare i valori puntatore NULL per nessuno degli argomenti.

Dettagli
Parametri
[out] retAddr
Indirizzo IP dell'endpoint locale.
[out] retPort
Porta TCP dell'endpoint locale.
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
INET_ERROR_CONNECTION_ABORTED
La connessione TCP non si apre più.

GetPeerInfo

INET_ERROR GetPeerInfo(
  IPAddress *retAddr,
  uint16_t *retPort
) const 

Estrai l'indirizzo IP e la porta TCP dell'endpoint remoto.

Non utilizzare i valori puntatore NULL per nessuno degli argomenti.

Dettagli
Parametri
[out] retAddr
Indirizzo IP dell'endpoint remoto.
[out] retPort
Porta TCP dell'endpoint remoto.
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
INET_ERROR_CONNECTION_ABORTED
La connessione TCP non si apre più.

IsConnected

bool IsConnected(
  void
) const 

Estrai se viene stabilita la connessione TCP.

Ascolta

INET_ERROR Listen(
  uint16_t backlog
)

Prepara l'endpoint per ricevere messaggi TCP.

Se State è già kState_Listening, non viene eseguita alcuna operazione, altrimenti State viene impostato su kState_Listening e l'endpoint è preparato per i messaggi TCP ricevuti, in base alla semantica della piattaforma.

Dettagli
Parametri
[in] backlog
profondità massima della coda di accettazione della connessione
Valori restituiti
INET_NO_ERROR
operazione riuscita: endpoint pronto a ricevere messaggi.
INET_ERROR_INCORRECT_STATE
endpoint è già in ascolto.

Su alcune piattaforme, l'argomento backlog non viene utilizzato (la profondità della coda è fissa; può essere accettata una sola connessione alla volta).

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

LogId

uint16_t LogId(
  void
)

Ottieni un identificatore per l'endpoint.

Dettagli
Restituisce
Restituisce un identificatore univoco opaco per i log di utilizzo.

MarkActive

void MarkActive(
  void
)

Rileva l'attività, ossia reimposta il timer di inattività.

Reimposta il timer di inattività a zero.

PendingReceiveLength

uint32_t PendingReceiveLength(
  void
)

Estrai la lunghezza dei dati ricevuti non confermati.

Dettagli
Restituisce
Numero di byte nella coda di ricezione che non sono stati ancora riconosciuti con AckReceive(uint16_t len).

PendingSendLength

uint32_t PendingSendLength(
  void
)

Estrai la lunghezza dei dati in attesa di prima trasmissione.

Dettagli
Restituisce
Numero di byte non trasmessi nella coda di trasmissione.

PutBackReceivedData

INET_ERROR PutBackReceivedData(
  Weave::System::PacketBuffer *data
)

Spingi il testo del messaggio all'inizio della coda di ricezione.

Questo metodo può essere chiamato solo dai gestori di eventi di ricezione dati per reinserire una parte di dati non confermata nella coda di ricezione. La semantica operativa non è definita se il chiamante non rientra nell'ambito di un gestore di eventi di ricezione dati, data non è l'elemento Weave::System::PacketBuffer fornito al gestore o data non contiene la parte non confermata rimanente dopo i byte confermati da una precedente chiamata al metodo AckReceive(uint16_t len).

Dettagli
Parametri
[out] data
Testo del messaggio da inviare.
Valori restituiti
INET_NO_ERROR
operazione riuscita: ricezione confermata.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.

Invia

INET_ERROR Send(
  Weave::System::PacketBuffer *data,
  bool push
)

Invia il testo del messaggio sulla connessione TCP.

Il metodo Weave::System::PacketBuffer::Free viene chiamato sull'argomento data a prescindere dal fatto che la trasmissione sia riuscita o meno.

Dettagli
Parametri
[out] data
Testo del messaggio da inviare.
[out] push
Se true, invia immediatamente, altrimenti metti in coda.
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Imposta un timeout per consentire la riuscita di Connect o la restituzione di un errore.

Dettagli
Parametri
[in] connTimeoutMsecs

SetUserTimeout

INET_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

Imposta l'opzione del socket TCP_USER_TIMEOUT TCP.

TCPEndPoint::SetUserTimeout.

Quando il valore è maggiore di 0, specifica la quantità massima di tempo in millisecondi durante il quale i dati trasmessi possono rimanere non confermati prima che TCP chiuda forzatamente la connessione corrispondente. Se il valore dell'opzione è 0, TCP utilizzerà l'impostazione predefinita di sistema. Per ulteriori dettagli, consulta RFC 5482.

Dettagli
Parametri
[in] userTimeoutMillis
Valore di timeout utente TCP in millisecondi.
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_NOT_IMPLEMENTED
implementazione del sistema non completata.
other
un altro errore del sistema o della piattaforma

Imposta l'opzione del socket di timeout utente TCP.

Quando il valore è maggiore di 0, specifica la quantità massima di tempo in millisecondi durante il quale i dati trasmessi possono rimanere non confermati prima che TCP chiuda forzatamente la connessione corrispondente. Se il valore dell'opzione è 0, TCP utilizzerà il valore predefinito di sistema. Per ulteriori dettagli, consulta RFC 5482.

Nota:questo metodo può essere chiamato solo quando l'endpoint si trova in uno degli stati connessi. Questo metodo può essere richiamato più volte per regolare l'intervallo keepalive o il conteggio del timeout.

Arresto

INET_ERROR Shutdown(
  void
)

Avvia TCP semitouso, in altre parole, terminato con l'invio.

Dettagli
Valori restituiti
INET_NO_ERROR
success: indirizzo e porta estratti.
INET_ERROR_INCORRECT_STATE
Connessione TCP non stabilita.
other
un altro errore del sistema o della piattaforma