nl :: Inet :: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
Os objetos desta classe representam os terminais de transporte TCP.
Resumo
A camada Nest Inet encapsula métodos para interagir com pontos finais de transporte TCP (soquetes SOCK_STREAM em sistemas Linux e derivados de BSD) ou blocos de controle de protocolo TCP LwIP, conforme o sistema é configurado de acordo.
Herança
Herda: nl :: Inet :: EndPointBasisTipos públicos | |
---|---|
@10 { | enum Estado dinâmico básico do ponto de extremidade subjacente. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de função de tratamento de eventos de erro de aceitação de conexão. |
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de função de tratamento de eventos de estabelecimento de conexão. |
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de função de tratamento de eventos de estabelecimento de conexão. |
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) | typedefvoid(* Tipo de conexão recebida função de tratamento de eventos. |
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) | typedefvoid(* Tipo de função de tratamento de eventos de recepção de dados. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* Tipo de função de tratamento de eventos de transmissão de dados. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* Tipo de função de tratamento de eventos de recepção semi-fechada. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* O tipo de TCP SendIdle mudou a função de tratamento de sinal. |
Atributos públicos | |
---|---|
OnAcceptError | O delegado da função de manipulação de eventos de aceitação de conexão do terminal. |
OnConnectComplete | O delegado de função de manipulação de eventos de estabelecimento de conexão do terminal. |
OnConnectionClosed | O delegado da função de manipulação de eventos de fechamento do terminal. |
OnConnectionReceived | A conexão do ponto de extremidade recebe delegado de função de manipulação de eventos. |
OnDataReceived | O delegado da função de manipulação de eventos de recepção de texto de mensagem do terminal. |
OnDataSent | O delegado da função de manipulação de eventos de transmissão de texto de mensagem do terminal. |
OnPeerClose | O delegado da função de manipulação de eventos de recepção semicerrada do ponto de extremidade. |
OnTCPSendIdleChanged | O delegado de função de manipulação de eventos da sinalização de terminal quando a ociosidade do canal de envio da conexão TCP muda. |
ReceiveEnabled | bool Chave de controle que indica se o aplicativo está recebendo dados. |
State | enum nl::Inet::TCPEndPoint::@10 Estado dinâmico básico do ponto de extremidade subjacente. |
Funções públicas | |
---|---|
Abort (void) | void Fechar abortivamente o ponto de extremidade, em outras palavras, enviar pacotes RST. |
AckReceive (uint16_t len) | Confirme o recebimento do texto da mensagem. |
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr) | Vincule o ponto de extremidade a um endereço IP de interface. |
Close (void) | Iniciar o fechamento total do TCP, em outras palavras, finalizar tanto o envio quanto o recebimento. |
Connect ( IPAddress addr, uint16_t port, InterfaceId intf) | Inicie uma conexão TCP. |
DisableKeepAlive (void) | Desative a opção TCP "keep-alive". |
DisableReceive (void) | void Desative a recepção. |
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount) | Habilite a opção TCP "keep-alive". |
EnableNoDelay (void) | EnableNoDelay. |
EnableReceive (void) | void Ative a recepção. |
Free (void) | void Inicie (ou continue) o fechamento completo do TCP, ignorando os erros. |
GetLocalInfo ( IPAddress *retAddr, uint16_t *retPort) | Extraia o endereço IP e a porta TCP do terminal local. |
GetPeerInfo ( IPAddress *retAddr, uint16_t *retPort) const | Extraia o endereço IP e a porta TCP do terminal remoto. |
IsConnected (void) const | bool Extraia se a conexão TCP foi estabelecida. |
Listen (uint16_t backlog) | Prepare o terminal para receber mensagens TCP. |
LogId (void) | uint16_t Obtenha um identificador para o terminal. |
MarkActive (void) | void Observe a atividade, em outras palavras, zere o cronômetro de inatividade. |
PendingReceiveLength (void) | uint32_t Extraia o comprimento dos dados de recebimento não confirmados. |
PendingSendLength (void) | uint32_t Extraia o comprimento dos dados que aguardam a primeira transmissão. |
PutBackReceivedData ( Weave::System::PacketBuffer *data) | Envie o texto da mensagem de volta para o início da fila de recebimento. |
Send ( Weave::System::PacketBuffer *data, bool push) | Envie o texto da mensagem na conexão TCP. |
SetConnectTimeout (const uint32_t connTimeoutMsecs) | void Defina o tempo limite para que o Connect seja bem-sucedido ou retorne um erro. |
SetUserTimeout (uint32_t userTimeoutMillis) | Defina a opção de soquete TCP TCP_USER_TIMEOUT. |
Shutdown (void) | Inicie o TCP pela metade, ou seja, termine com o envio. |
Tipos públicos
@ 10
@10
Estado dinâmico básico do ponto de extremidade subjacente.
Os objetos são inicializados no estado "pronto", prossiga para os estados subsequentes correspondentes a uma simplificação dos estados da máquina de estado de transporte TCP.
Nota: O kBasisState_Closed
enumeração estado é mapeado para kState_Ready
por razões binário de compatibilidade históricos. O existente kState_Closed
existe para identificar separadamente a distinção entre "não abriu ainda" e "aberta anteriormente fechado agora" que existia anteriormente nos kState_Ready
e kState_Closed
estados.
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de função de tratamento de eventos de erro de aceitação de conexão.
Fornecer uma função deste tipo ao OnAcceptError
membro delegado para eventos de erro aceitação ligação de processo sobre endPoint
. O err
argumento fornece detalhes específicos sobre o tipo do erro.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OnConnectCompleteFunct
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de função de tratamento de eventos de estabelecimento de conexão.
Fornecer uma função deste tipo ao OnConnectComplete
membro delegado para processar eventos de estabelecimento de conexão em endPoint
. O err
argumento distingue conexões bem-sucedidas de falhas.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de função de tratamento de eventos de estabelecimento de conexão.
Fornecer uma função deste tipo ao OnConnectionClosed
membro delegado para eventos de terminação ligação de processo sobre endPoint
. O err
argumento distingue terminações sucesso de falhas.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OnConnectionReceivedFunct
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
Tipo de conexão recebida função de tratamento de eventos.
Fornecer uma função deste tipo ao OnConnectionReceived
membro delegado para eventos de recepção ligação de processo sobre listeningEndPoint
. O endpoint recém-recebido conEndPoint
está localizado no endereço IP peerAddr
e TCP porta peerPort
.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
OnDataReceivedFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
Tipo de função de tratamento de eventos de recepção de dados.
Fornecer uma função deste tipo ao OnDataReceived
membro delegado para processar eventos de recepção de dados sobre endPoint
onde data
é o texto da mensagem recebida.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Um manipulador de eventos de recepção de dados deve reconhecer dados processados usando o AckReceive
método. O Free
método na memória tampão de dados também deve ser invocada se o PutBackReceivedData
é usado em vez disso.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Tipo de função de tratamento de eventos de transmissão de dados.
Fornecer uma função deste tipo ao OnDataSent
membro delegado para eventos de transmissão de dados do processo no endPoint
onde len
é o comprimento do texto da mensagem adicionado a janela de transmissão do TCP, que são elegíveis para o envio pela pilha de rede subjacente.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
Tipo de função de tratamento de eventos de recepção semi-fechada.
Fornecer uma função deste tipo ao OnPeerClose
membro delegado para processar eventos de terminação de conexão em endPoint
.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
O tipo de TCP SendIdle mudou a função de tratamento de sinal.
Fornecer uma função deste tipo ao OnTCPSendIdleChanged
membro delegado para processar o evento do canal de envio do TCPEndPoint alterar o estado entre estar ocioso e não ocioso.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
Atributos públicos
OnAcceptError
OnAcceptErrorFunct OnAcceptError
O delegado da função de manipulação de eventos de aceitação de conexão do terminal.
OnConnectComplete
OnConnectCompleteFunct OnConnectComplete
O delegado da função de manipulação de eventos de estabelecimento de conexão do terminal.
OnConnectionClosed
OnConnectionClosedFunct OnConnectionClosed
O delegado da função de manipulação de eventos de fechamento do terminal.
OnConnectionReceived
OnConnectionReceivedFunct OnConnectionReceived
A conexão do ponto de extremidade recebe delegado de função de manipulação de eventos.
OnDataReceived
OnDataReceivedFunct OnDataReceived
O delegado da função de manipulação de eventos de recepção de texto de mensagem do terminal.
OnDataSent
OnDataSentFunct OnDataSent
O delegado da função de manipulação de eventos de transmissão de texto de mensagem do terminal.
OnPeerClose
OnPeerCloseFunct OnPeerClose
O delegado da função de manipulação de eventos de recepção semicerrada do ponto de extremidade.
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
O delegado de função de manipulação de eventos da sinalização de terminal quando a ociosidade do canal de envio da conexão TCP muda.
Isso é utilizado pelas camadas superiores para tomar as ações apropriadas com base no fato de os dados enviados terem sido entregues de forma confiável ao par.
ReceiveEnabled
bool ReceiveEnabled
Chave de controle que indica se o aplicativo está recebendo dados.
Estado
enum nl::Inet::TCPEndPoint::@10 State
Estado dinâmico básico do ponto de extremidade subjacente.
Os objetos são inicializados no estado "pronto", prossiga para os estados subsequentes correspondentes a uma simplificação dos estados da máquina de estado de transporte TCP.
Nota: O kBasisState_Closed
enumeração estado é mapeado para kState_Ready
por razões binário de compatibilidade históricos. O existente kState_Closed
existe para identificar separadamente a distinção entre "não abriu ainda" e "aberta anteriormente fechado agora" que existia anteriormente nos kState_Ready
e kState_Closed
estados.
Funções públicas
Abortar
void Abort( void )
Fechar abortivamente o ponto de extremidade, em outras palavras, enviar pacotes RST.
AckReceive
INET_ERROR AckReceive( uint16_t len )
Confirme o recebimento do texto da mensagem.
Use este método para confirmar o recebimento de todos ou parte dos dados recebidos. A semântica operacionais são indefinido se len
é maior do que os dados recebidos não reconhecida total em circulação.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Ligar
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
Vincule o ponto de extremidade a um endereço IP de interface.
Vincula o ponto de extremidade ao endereço IP da interface de rede especificado.
Detalhes | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||||||
Valores Retornados |
|
No LwIP, este método não deve ser chamado com o bloqueio de pilha LwIP já adquirido.
Perto
INET_ERROR Close( void )
Iniciar o fechamento total do TCP, em outras palavras, terminar com o envio e recebimento.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores Retornados |
|
Conectar
INET_ERROR Connect( IPAddress addr, uint16_t port, InterfaceId intf )
Inicie uma conexão 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.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
Desative a opção TCP "keep-alive".
TCPEndPoint :: DisableKeepAlive .
Desative os testes de manutenção de atividade TCP na conexão TCP associada.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Valores Retornados |
|
Nota: Este método só pode ser chamado quando o parâmetro está em um dos estados ligados. Este método não faz nada se o keepalives não tiver sido habilitado no nó de extremidade.
DisableReceive
void DisableReceive( void )
Desative a recepção.
Desative todos os manipuladores de eventos. Os dados enviados a um ponto de extremidade que desabilita a recepção serão confirmados até que a janela de recebimento se esgote.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
Habilite a opção TCP "keep-alive".
TCPEndPoint :: EnableKeepAlive .
Iniciar automaticamente a transmissão TCP segmentos de sonda "keep-alive" a cada interval
segundos. A conexão vai abortar automaticamente depois de receber uma resposta negativa, ou depois da emissão timeoutCount
segmentos de sonda sem receber uma resposta positiva.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||||
Valores Retornados |
|
Consulte RFC 1122, seção 4.2.3.6 para detalhes de especificação.
Habilite probes keep-alive de TCP na conexão TCP associada.
Nota: Este método só pode ser chamado quando o parâmetro está em um dos estados ligados. Este método pode ser chamado várias vezes para ajustar o intervalo de manutenção de atividade ou a contagem de tempo limite.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoDelay.
TCPEndPoint :: EnableNoDelay .
Desative o algoritmo de buffer nagle no TCP definindo as opções de soquete TCP_NODELAY.
EnableReceive
void EnableReceive( void )
Ative a recepção.
Habilite todos os manipuladores de eventos. Os dados enviados a um ponto de extremidade que desabilita a recepção serão confirmados até que a janela de recebimento se esgote.
Livre
void Free( void )
Inicie (ou continue) o fechamento completo do TCP, ignorando os erros.
O objeto é retornado ao pool livre e todas as referências de usuário restantes são subsequentemente inválidas.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
Extraia o endereço IP e a porta TCP do terminal local.
Não use NULL
valores de ponteiro para qualquer argumento.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
Extraia o endereço IP e a porta TCP do terminal remoto.
Não use NULL
valores de ponteiro para qualquer argumento.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Está conectado
bool IsConnected( void ) const
Extraia se a conexão TCP foi estabelecida.
Ouço
INET_ERROR Listen( uint16_t backlog )
Prepare o terminal para receber mensagens TCP.
Se State
já está kState_Listening
, então nenhuma operação for executada, caso contrário o State
está definido para kState_Listening
eo ponto final é preparado para mensagens TCP recebidos, de acordo com a semântica da plataforma.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Em algumas plataformas, o backlog
argumento não é usado (a profundidade da fila é fixo; apenas uma conexão pode ser aceito em um momento).
Em sistemas LwIP, este método não deve ser chamado com o bloqueio de pilha LwIP já adquirido
LogId
uint16_t LogId( void )
Obtenha um identificador para o terminal.
Detalhes | |
---|---|
Devoluções | Retorna um identificador exclusivo opaco para registros de uso. |
MarkActive
void MarkActive( void )
Observe a atividade, em outras palavras, zere o cronômetro de inatividade.
Redefina o cronômetro de inatividade para zero.
PendingReceiveLength
uint32_t PendingReceiveLength( void )
Extraia o comprimento dos dados de recebimento não confirmados.
Detalhes | |
---|---|
Devoluções | Número de bytes na fila de recebimento que ainda não foram reconhecidos com AckReceive(uint16_t len) . |
PendingSendLength
uint32_t PendingSendLength( void )
Extraia o comprimento dos dados que aguardam a primeira transmissão.
Detalhes | |
---|---|
Devoluções | Número de bytes não transmitidos na fila de transmissão. |
PutBackReceivedData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Envie o texto da mensagem de volta para o início da fila de recebimento.
Este método só pode ser chamado por manipuladores de eventos de recepção de dados para colocar uma parte não confirmada dos dados de volta na fila de recebimento. A semântica operacionais são indefinido se o chamador está fora do escopo de um manipulador de eventos de recepção de dados, data
não é o Weave::System::PacketBuffer
fornecido para o manipulador, ou data
não contém a parte não reconhecida remanescente após os bytes reconhecido por um chamada antes da AckReceive(uint16_t len)
método.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
Mandar
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Envie o texto da mensagem na conexão TCP.
O Weave::System::PacketBuffer::Free
método é chamado na data
argumento independentemente da transmissão for bem sucedida ou não.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
| ||||
Valores Retornados |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
Defina o tempo limite para que o Connect seja bem-sucedido ou retorne um erro.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
Defina a opção de soquete TCP TCP_USER_TIMEOUT.
TCPEndPoint :: SetUserTimeout .
Quando o valor é maior que 0, ele especifica a quantidade máxima de tempo em milissegundos que os dados transmitidos podem permanecer sem confirmação antes que o TCP feche forçosamente a conexão correspondente. Se o valor da opção for especificado como 0, o TCP usará o padrão do sistema. Consulte RFC 5482 para obter mais detalhes.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Defina a opção de soquete de tempo limite do usuário TCP.
Quando o valor é maior que 0, ele especifica o tempo máximo em milissegundos que os dados transmitidos podem permanecer sem confirmação antes que o TCP feche forçosamente a conexão correspondente. Se o valor da opção for especificado como 0, o TCP usará o padrão do sistema. Consulte RFC 5482 para obter mais detalhes.
Nota: Este método só pode ser chamado quando o parâmetro está em um dos estados ligados. Este método pode ser chamado várias vezes para ajustar o intervalo de manutenção de atividade ou a contagem de tempo limite.
Desligar
INET_ERROR Shutdown( void )
Inicie o TCP pela metade, ou seja, termine com o envio.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores Retornados |
|