nl :: Inet :: TCPEndPoint
#include <src/inet/TCPEndPoint.h>
Los objetos de esta clase representan puntos finales de transporte TCP.
Resumen
Nest Inet Layer encapsula métodos para interactuar con puntos finales de transporte TCP (sockets SOCK_STREAM en Linux y sistemas derivados de BSD) o bloques de control del protocolo LwIP TCP, ya que el sistema está configurado en consecuencia.
Herencia
Hereda de: nl :: :: Inet EndPointBasisTipos públicos | |
---|---|
@10 { | enumeración Estado dinámico básico del punto final subyacente. |
OnAcceptErrorFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de función de tratamiento de eventos de error de aceptación de conexión. |
OnConnectCompleteFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de función de tratamiento de eventos de establecimiento de conexión. |
OnConnectionClosedFunct )(TCPEndPoint *endPoint, INET_ERROR err) | typedefvoid(* Tipo de función de tratamiento de eventos de establecimiento de conexión. |
OnConnectionReceivedFunct )(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort) | typedefvoid(* Tipo de conexión recibida Función de manejo de eventos. |
OnDataReceivedFunct )(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data) | typedefvoid(* Tipo de función de manejo de eventos de recepción de datos. |
OnDataSentFunct )(TCPEndPoint *endPoint, uint16_t len) | typedefvoid(* Tipo de función de manejo de eventos de transmisión de datos. |
OnPeerCloseFunct )(TCPEndPoint *endPoint) | typedefvoid(* Tipo de función de gestión de eventos de recepción semicerrada. |
OnTCPSendIdleChangedFunct )(TCPEndPoint *endPoint, bool isIdle) | typedefvoid(* El tipo de TCP SendIdle cambió la función de manejo de señales. |
Atributos públicos | |
---|---|
OnAcceptError | Delegado de la función de manejo de eventos de aceptación de conexión del punto final. |
OnConnectComplete | Delegado de la función de manejo de eventos de establecimiento de conexión del punto final. |
OnConnectionClosed | Delegado de la función de manejo de eventos cercanos del endpoint. |
OnConnectionReceived | La conexión del punto final recibe el delegado de la función de manejo de eventos. |
OnDataReceived | Delegado de función de manejo de eventos de recepción de texto de mensaje del punto final. |
OnDataSent | Delegado de función de manejo de eventos de transmisión de texto de mensaje del punto final. |
OnPeerClose | El delegado de la función de manejo de eventos de recepción de medio cierre del punto final. |
OnTCPSendIdleChanged | La función de manejo de eventos delega la señalización del punto final cuando cambia la inactividad del canal de envío de la conexión TCP. |
ReceiveEnabled | bool Interruptor de control que indica si la aplicación está recibiendo datos. |
State | enum nl::Inet::TCPEndPoint::@10 Estado dinámico básico del punto final subyacente. |
Funciones publicas | |
---|---|
Abort (void) | void Cierre de forma abortiva el punto final, en otras palabras, envíe paquetes RST. |
AckReceive (uint16_t len) | Acuse recibo del texto del mensaje. |
Bind (IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr) | Vincule el punto final a una dirección IP de interfaz. |
Close (void) | Inicie el cierre completo de TCP, en otras palabras, finalice tanto con el envío como con la recepción. |
Connect ( IPAddress addr, uint16_t port, InterfaceId intf) | Inicie una conexión TCP. |
DisableKeepAlive (void) | Desactive la opción "mantener vivo" de TCP. |
DisableReceive (void) | void Desactiva la recepción. |
EnableKeepAlive (uint16_t interval, uint16_t timeoutCount) | Habilite la opción "mantener vivo" de TCP. |
EnableNoDelay (void) | EnableNoDelay. |
EnableReceive (void) | void Habilite la recepción. |
Free (void) | void Inicie (o continúe) el cierre completo de TCP, ignorando los errores. |
GetLocalInfo ( IPAddress *retAddr, uint16_t *retPort) | Extraiga la dirección IP y el puerto TCP del punto final local. |
GetPeerInfo ( IPAddress *retAddr, uint16_t *retPort) const | Extraiga la dirección IP y el puerto TCP del punto final remoto. |
IsConnected (void) const | bool Extraiga si la conexión TCP está establecida. |
Listen (uint16_t backlog) | Prepare el punto final para recibir mensajes TCP. |
LogId (void) | uint16_t Obtenga un identificador para el punto final. |
MarkActive (void) | void Tenga en cuenta la actividad, en otras palabras, restablezca el temporizador de inactividad. |
PendingReceiveLength (void) | uint32_t Extraiga la longitud de los datos de recepción no reconocidos. |
PendingSendLength (void) | uint32_t Extraiga la longitud de los datos que esperan la primera transmisión. |
PutBackReceivedData ( Weave::System::PacketBuffer *data) | Empuje el texto del mensaje de nuevo al principio de la cola de recepción. |
Send ( Weave::System::PacketBuffer *data, bool push) | Envíe el texto del mensaje en la conexión TCP. |
SetConnectTimeout (const uint32_t connTimeoutMsecs) | void Establezca el tiempo de espera para que la conexión se realice correctamente o devuelva un error. |
SetUserTimeout (uint32_t userTimeoutMillis) | Establezca la opción de socket TCP TCP_USER_TIMEOUT. |
Shutdown (void) | Iniciar TCP medio cerrado, es decir, terminar con el envío. |
Tipos públicos
@ 10
@10
Estado dinámico básico del punto final subyacente.
Los objetos se inicializan en el estado "listo", pasan a los estados subsiguientes correspondientes a una simplificación de los estados de la máquina de estado de transporte TCP.
Nota: El kBasisState_Closed
enumeración estado se asigna a kState_Ready
por razones de compatibilidad binaria-históricos. El vigente kState_Closed
existe para identificar por separado la distinción entre "no abierto todavía" y "abierto anteriormente ahora cerrado" que existía previamente en los kState_Ready
y kState_Closed
estados.
OnAcceptErrorFunct
void(* OnAcceptErrorFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de función de tratamiento de eventos de error de aceptación de conexión.
Proporcionar una función de este tipo a la OnAcceptError
miembro delegado a eventos de error de aceptación de conexión del proceso de endPoint
. El err
argumento proporciona detalles específicos del tipo de error.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
OnConnectCompleteFunct
void(* OnConnectCompleteFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de función de tratamiento de eventos de establecimiento de conexión.
Proporcionar una función de este tipo a la OnConnectComplete
miembro delegado para procesar eventos de establecimiento de conexión de endPoint
. El err
argumento distingue conexiones exitosas de fracasos.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
OnConnectionClosedFunct
void(* OnConnectionClosedFunct)(TCPEndPoint *endPoint, INET_ERROR err)
Tipo de función de tratamiento de eventos de establecimiento de conexión.
Proporcionar una función de este tipo a la OnConnectionClosed
miembro delegado a eventos de terminación de conexión del proceso de endPoint
. El err
argumento distingue terminaciones exitosas de fracasos.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
OnConnectionReceivedFunct
void(* OnConnectionReceivedFunct)(TCPEndPoint *listeningEndPoint, TCPEndPoint *conEndPoint, const IPAddress &peerAddr, uint16_t peerPort)
Tipo de conexión recibida Función de manejo de eventos.
Proporcionar una función de este tipo a la OnConnectionReceived
miembro delegado a eventos de recepción de conexión del proceso en listeningEndPoint
. El punto final recién recibido conEndPoint
se encuentra en la dirección IP peerAddr
y el puerto TCP peerPort
.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
OnDataReceivedFunct
void(* OnDataReceivedFunct)(TCPEndPoint *endPoint, Weave::System::PacketBuffer *data)
Tipo de función de manejo de eventos de recepción de datos.
Proporcionar una función de este tipo a la OnDataReceived
miembro delegado para procesar eventos de recepción de datos de endPoint
, donde data
es el texto del mensaje recibido.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Un controlador de eventos de recepción de datos debe reconocer los datos procesados con el AckReceive
método. La Free
método en la memoria intermedia de datos también se debe invocar a menos que el PutBackReceivedData
se utiliza en su lugar.
OnDataSentFunct
void(* OnDataSentFunct)(TCPEndPoint *endPoint, uint16_t len)
Tipo de función de manejo de eventos de transmisión de datos.
Proporcionar una función de este tipo a la OnDataSent
miembro delegado a los eventos de transmisión de datos de proceso de endPoint
donde len
es la longitud del texto del mensaje añadido a la ventana de transmisión TCP, que son elegibles para el envío de la pila de red subyacente.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
OnPeerCloseFunct
void(* OnPeerCloseFunct)(TCPEndPoint *endPoint)
Tipo de función de gestión de eventos de recepción semicerrada.
Proporcionar una función de este tipo a la OnPeerClose
miembro delegado para procesar eventos de terminación de conexión de endPoint
.
Detalles | |||
---|---|---|---|
Parámetros |
|
OnTCPSendIdleChangedFunct
void(* OnTCPSendIdleChangedFunct)(TCPEndPoint *endPoint, bool isIdle)
El tipo de TCP SendIdle cambió la función de manejo de señales.
Proporcionar una función de este tipo a la OnTCPSendIdleChanged
miembro delegado para procesar el caso de que el canal de envío de la TCPEndPoint cambiar de estado entre ser o inactividad.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
Atributos públicos
OnAcceptError
OnAcceptErrorFunct OnAcceptError
Delegado de la función de manejo de eventos de aceptación de conexión del punto final.
OnConnectComplete
OnConnectCompleteFunct OnConnectComplete
Delegado de la función de manejo de eventos de establecimiento de conexión del punto final.
OnConnectionClosed
OnConnectionClosedFunct OnConnectionClosed
Delegado de la función de manejo de eventos cercanos del endpoint.
OnConnectionReceived
OnConnectionReceivedFunct OnConnectionReceived
La conexión del punto final recibe el delegado de la función de manejo de eventos.
OnDataReceived
OnDataReceivedFunct OnDataReceived
Delegado de función de manejo de eventos de recepción de texto de mensaje del punto final.
OnDataSent
OnDataSentFunct OnDataSent
Delegado de función de manejo de eventos de transmisión de texto de mensaje del punto final.
OnPeerClose
OnPeerCloseFunct OnPeerClose
El delegado de la función de manejo de eventos de recepción de medio cierre del punto final.
OnTCPSendIdleChanged
OnTCPSendIdleChangedFunct OnTCPSendIdleChanged
La función de manejo de eventos delega la señalización del punto final cuando cambia la inactividad del canal de envío de la conexión TCP.
Esto lo utilizan las capas superiores para tomar las acciones adecuadas en función de si los datos enviados se han entregado de manera confiable al par.
ReceiveEnabled
bool ReceiveEnabled
Interruptor de control que indica si la aplicación está recibiendo datos.
Expresar
enum nl::Inet::TCPEndPoint::@10 State
Estado dinámico básico del punto final subyacente.
Los objetos se inicializan en el estado "listo", pasan a los estados subsiguientes correspondientes a una simplificación de los estados de la máquina de estado de transporte TCP.
Nota: El kBasisState_Closed
enumeración estado se asigna a kState_Ready
por razones de compatibilidad binaria-históricos. El vigente kState_Closed
existe para identificar por separado la distinción entre "no abierto todavía" y "abierto anteriormente ahora cerrado" que existía previamente en los kState_Ready
y kState_Closed
estados.
Funciones publicas
Abortar
void Abort( void )
Cierre de forma abortiva el punto final, en otras palabras, envíe paquetes RST.
AckReceive
INET_ERROR AckReceive( uint16_t len )
Acuse recibo del texto del mensaje.
Utilice este método para acusar recibo de la totalidad o parte de los datos recibidos. La semántica operacional se indefinido si len
es más grande que los datos recibidos no reconocido total pendiente.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
Unir
INET_ERROR Bind( IPAddressType addrType, IPAddress addr, uint16_t port, bool reuseAddr )
Vincule el punto final a una dirección IP de interfaz.
Vincula el punto final a la dirección IP de la interfaz de red especificada.
Detalles | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||||||
Valores devueltos |
|
En LwIP, este método no se debe llamar con el bloqueo de pila LwIP ya adquirido.
Cerca
INET_ERROR Close( void )
Inicie el cierre completo de TCP, en otras palabras, finalice tanto con el envío como con la recepción.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores devueltos |
|
Conectar
INET_ERROR Connect( IPAddress addr, uint16_t port, InterfaceId intf )
Inicie una conexión 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.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||
Valores devueltos |
|
DisableKeepAlive
INET_ERROR DisableKeepAlive( void )
Desactive la opción "mantener vivo" de TCP.
TCPEndPoint :: DisableKeepAlive .
Deshabilite las sondas de mantenimiento de TCP en la conexión TCP asociada.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Valores devueltos |
|
Nota: Este método sólo puede ser llamado cuando el punto final se encuentra en uno de los estados conectados. Este método no hace nada si no se han habilitado keepalives en el punto final.
DisableReceive
void DisableReceive( void )
Desactiva la recepción.
Deshabilite todos los controladores de eventos. Los datos enviados a un punto final que deshabilita la recepción serán reconocidos hasta que se agote la ventana de recepción.
EnableKeepAlive
INET_ERROR EnableKeepAlive( uint16_t interval, uint16_t timeoutCount )
Habilite la opción "mantener vivo" de TCP.
TCPEndPoint :: EnableKeepAlive .
Iniciar automáticamente la transmisión TCP segmentos sonda "keep-alive" cada interval
segundos. La conexión abortará automáticamente después de recibir una respuesta negativa, o después de enviar timeoutCount
segmentos de sonda sin recibir una respuesta positiva.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
| ||||||||||
Valores devueltos |
|
Consulte RFC 1122, sección 4.2.3.6 para obtener detalles sobre las especificaciones.
Habilite las sondas de mantenimiento de TCP en la conexión TCP asociada.
Nota: Este método sólo puede ser llamado cuando el punto final se encuentra en uno de los estados conectados. Este método se puede llamar varias veces para ajustar el intervalo de actividad o el recuento de tiempo de espera.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
EnableNoDelay
INET_ERROR EnableNoDelay( void )
EnableNoDelay.
TCPEndPoint :: EnableNoDelay .
Desactive el algoritmo de almacenamiento en búfer de Nagle en TCP configurando las opciones de socket TCP_NODELAY.
EnableReceive
void EnableReceive( void )
Habilite la recepción.
Habilite todos los controladores de eventos. Los datos enviados a un punto final que deshabilita la recepción serán reconocidos hasta que se agote la ventana de recepción.
Libre
void Free( void )
Inicie (o continúe) el cierre completo de TCP, ignorando los errores.
El objeto se devuelve al grupo libre y todas las referencias de usuario restantes son posteriormente inválidas.
GetLocalInfo
INET_ERROR GetLocalInfo( IPAddress *retAddr, uint16_t *retPort )
Extraiga la dirección IP y el puerto TCP del punto final local.
No utilice NULL
valores de puntero para cualquiera de los argumentos.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
GetPeerInfo
INET_ERROR GetPeerInfo( IPAddress *retAddr, uint16_t *retPort ) const
Extraiga la dirección IP y el puerto TCP del punto final remoto.
No utilice NULL
valores de puntero para cualquiera de los argumentos.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
Está conectado
bool IsConnected( void ) const
Extraiga si la conexión TCP está establecida.
Escuchar
INET_ERROR Listen( uint16_t backlog )
Prepare el punto final para recibir mensajes TCP.
Si State
ya está kState_Listening
, a continuación, se lleva a cabo ninguna operación, de lo contrario el State
está establecido en kState_Listening
y el punto final se prepara a los mensajes TCP recibidos, de acuerdo con la semántica de la plataforma.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
En algunas plataformas, el backlog
argumento no se utiliza (la profundidad de la cola se fija; sólo una conexión puede ser aceptada a la vez).
En sistemas LwIP, este método no debe llamarse con el bloqueo de pila LwIP ya adquirido
LogId
uint16_t LogId( void )
Obtenga un identificador para el punto final.
Detalles | |
---|---|
Devoluciones | Devuelve un identificador único opaco para los registros de uso. |
MarkActive
void MarkActive( void )
Tenga en cuenta la actividad, en otras palabras, restablezca el temporizador de inactividad.
Restablezca el temporizador inactivo a cero.
PendienteRecibirLongitud
uint32_t PendingReceiveLength( void )
Extraiga la longitud de los datos de recepción no reconocidos.
Detalles | |
---|---|
Devoluciones | Número de bytes en la cola de recepción que aún no han sido reconocidos con AckReceive(uint16_t len) . |
PendienteEnviarLongitud
uint32_t PendingSendLength( void )
Extraiga la longitud de los datos que esperan la primera transmisión.
Detalles | |
---|---|
Devoluciones | Número de bytes no transmitidos en la cola de transmisión. |
PutBackReceivedData
INET_ERROR PutBackReceivedData( Weave::System::PacketBuffer *data )
Empuje el texto del mensaje de nuevo al principio de la cola de recepción.
Este método solo puede ser llamado por los manejadores de eventos de recepción de datos para volver a colocar una parte no reconocida de los datos en la cola de recepción. La semántica operacional se indefinido si la persona que llama está fuera del alcance de un controlador de eventos de recepción de datos, data
no es el Weave::System::PacketBuffer
proporciona al controlador, o data
no contiene la parte no reconocida que queda después de los bytes reconocido por una llamada antes de la AckReceive(uint16_t len)
método.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
Enviar
INET_ERROR Send( Weave::System::PacketBuffer *data, bool push )
Envíe el texto del mensaje en la conexión TCP.
La Weave::System::PacketBuffer::Free
método se llama en la data
argumento independientemente de si la transmisión es exitosa o fallida.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
| ||||
Valores devueltos |
|
SetConnectTimeout
void SetConnectTimeout( const uint32_t connTimeoutMsecs )
Establezca el tiempo de espera para que la conexión se realice correctamente o devuelva un error.
Detalles | |||
---|---|---|---|
Parámetros |
|
SetUserTimeout
INET_ERROR SetUserTimeout( uint32_t userTimeoutMillis )
Establezca la opción de socket TCP TCP_USER_TIMEOUT.
TCPEndPoint :: SetUserTimeout .
Cuando el valor es mayor que 0, especifica la cantidad máxima de tiempo en milisegundos que los datos transmitidos pueden permanecer sin acuse de recibo antes de que TCP cierre por la fuerza la conexión correspondiente. Si el valor de la opción se especifica como 0, TCP utilizará el valor predeterminado del sistema. Consulte RFC 5482 para obtener más detalles.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
| ||||||
Valores devueltos |
|
Establezca la opción de socket de tiempo de espera de usuario TCP.
Cuando el valor es mayor que 0, especifica la cantidad máxima de tiempo en milisegundos que los datos transmitidos pueden permanecer sin acuse de recibo antes de que TCP cierre por la fuerza la conexión correspondiente. Si el valor de la opción se especifica como 0, TCP utilizará el valor predeterminado del sistema. Consulte RFC 5482 para obtener más detalles.
Nota: Este método sólo puede ser llamado cuando el punto final se encuentra en uno de los estados conectados. Este método se puede llamar varias veces para ajustar el intervalo de actividad o el recuento de tiempo de espera.
Cerrar
INET_ERROR Shutdown( void )
Iniciar TCP medio cierre, es decir, terminar con el envío.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores devueltos |
|