Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

TCP

Este módulo incluye funciones que controlan la comunicación TCP.

Resumen

Enumeraciones

anonymous enum enumeración
Esto define la enumeración banderas pasados a otTcpConnect () .
anonymous enum enumeración
Esta enumeración define banderas pasados a otTcpSendByReference .
otTcpDisconnectedReason enumeración
otTcpIncomingConnectionAction {
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT ,
OT_TCP_INCOMING_CONNECTION_ACTION_DEFER ,
OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE
}
enumeración
Esta enumeración define las acciones de conexión entrantes.

Typedefs

otLinkedBuffer typedef
Una estructura de búfer vinculada para su uso con TCP.
otTcpAcceptDone )(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer) typedef
void(*
Esta devolución de llamada indica que la conexión TCP ahora está lista para la comunicación bidireccional.
otTcpAcceptReady )(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto) typedef
Esta devolución de llamada indica que ha llegado una conexión entrante que coincide con este oyente de TCP.
otTcpBytesAcked )(otTcpEndpoint *aEndpoint, size_t aNumBytes) typedef
void(*
Esta devolución de llamada informa a la aplicación que los primeros aNumBytes en el búfer de emisión han sido reconocidos por los pares de conexión y que su memoria subyacente pueden ser recuperados por la aplicación.
otTcpDisconnected )(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason) typedef
void(*
Esta devolución de llamada indica que la conexión se interrumpió y ya no se debe utilizar, o que una conexión ha entrado en el estado TIME-WAIT.
otTcpDisconnectedReason typedef
enum otTcpDisconnectedReason
otTcpEndpoint typedef
otTcpEndpointInitializeArgs typedef
Esta estructura contiene argumentos a la otTcpEndpointInitialize () función.
otTcpEstablished )(otTcpEndpoint *aEndpoint) typedef
void(*
Esta devolución de llamada informa a la aplicación que el protocolo de enlace de 3 vías de TCP está completo y que la conexión ahora está establecida.
otTcpIncomingConnectionAction typedef
Esta enumeración define las acciones de conexión entrantes.
otTcpListener typedef
otTcpListenerInitializeArgs typedef
Esta estructura contiene argumentos a la otTcpListenerInitialize () función.
otTcpReceiveAvailable )(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining) typedef
void(*
Esta devolución de llamada indica el número de bytes disponibles para el consumo del búfer de recepción.
otTcpSendDone )(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData) typedef
void(*
Esta devolución de llamada informa a la aplicación que los datos proporcionados en las aData han sido reconocidos por los pares de conexión y que aData y los datos que contiene pueden ser recuperados por la aplicación.
otTcpSendReady )(otTcpEndpoint *aEndpoint) typedef
void(*
Esta devolución de llamada informa a la aplicación que si se agregan datos al búfer de envío, algunos de ellos se transmitirán inmediatamente sin demora, en lugar de estar en la cola de transmisión una vez que el par ACK algunos datos.

Funciones

otTcpAbort ( otTcpEndpoint *aEndpoint)
Finaliza a la fuerza la conexión TCP asociada con este punto final TCP.
otTcpBind ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName)
Vincula el punto final TCP a una dirección IP y un puerto.
otTcpCommitReceive ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
Informa la pila TCP que la aplicación tiene acabados de procesamiento aNumBytes bytes de datos al inicio del buffer de recepción y que la necesidad pila TCP no continúe manteniendo dichos bytes en el búfer de recepción.
otTcpConnect ( otTcpEndpoint *aEndpoint, const otSockAddr *aSockName, uint32_t aFlags)
Registra el host remoto y el puerto para esta conexión.
otTcpEndpointDeinitialize ( otTcpEndpoint *aEndpoint)
Desinicializa este punto final TCP.
otTcpEndpointGetContext ( otTcpEndpoint *aEndpoint)
void *
Obtiene el puntero del contexto que se asoció con aEndpoint tras la inicialización.
otTcpEndpointGetInstance ( otTcpEndpoint *aEndpoint)
Obtiene la otInstance que se asoció con aEndpoint tras la inicialización.
otTcpEndpointInitialize ( otInstance *aInstance, otTcpEndpoint *aEndpoint, otTcpEndpointInitializeArgs *aArgs)
Inicializa un punto final TCP.
otTcpGetLocalAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
Obtiene un puntero al puerto y al host local de un punto final TCP.
otTcpGetPeerAddress (const otTcpEndpoint *aEndpoint)
const otSockAddr *
Obtiene un puntero al puerto y al host del par de un punto final TCP.
otTcpListen ( otTcpListener *aListener, const otSockAddr *aSockName)
Hace que las conexiones TCP entrantes que coinciden con la dirección IP y el puerto especificados activen las devoluciones de llamada de este oyente TCP.
otTcpListenerDeinitialize ( otTcpListener *aListener)
Desinicializa este oyente TCP.
otTcpListenerGetContext ( otTcpListener *aListener)
void *
Obtiene el puntero del contexto que se asoció con aListener tras la inicialización.
otTcpListenerGetInstance ( otTcpListener *aListener)
Obtiene la otInstance que se asoció con aListener tras la inicialización.
otTcpListenerInitialize ( otInstance *aInstance, otTcpListener *aListener, otTcpListenerInitializeArgs *aArgs)
Inicializa un oyente de TCP.
otTcpReceiveByReference (const otTcpEndpoint *aEndpoint, const otLinkedBuffer **aBuffer)
Proporciona a la aplicación una cadena de búfer vinculada que hace referencia a los datos que se encuentran actualmente en el búfer de recepción de TCP.
otTcpReceiveContiguify ( otTcpEndpoint *aEndpoint)
Reorganiza el búfer de recepción para que sea completamente contiguo en la memoria.
otTcpSendByExtension ( otTcpEndpoint *aEndpoint, size_t aNumBytes, uint32_t aFlags)
Añade datos al buffer de envío mediante la extensión de la longitud de la final otLinkedBuffer en el buffer de envío por la cantidad especificada.
otTcpSendByReference ( otTcpEndpoint *aEndpoint, otLinkedBuffer *aBuffer, uint32_t aFlags)
Agrega los datos referenciados por la memoria temporal ligado apuntado por aBuffer a la memoria de envío.
otTcpSendEndOfStream ( otTcpEndpoint *aEndpoint)
Informa al par de conexión que este punto final TCP no enviará más datos.
otTcpStopListening ( otTcpListener *aListener)
Hace que este oyente de TCP deje de escuchar las conexiones entrantes.

Estructuras

otLinkedBuffer

Una estructura de búfer vinculada para su uso con TCP.

otTcpEndpoint

Esta estructura representa un punto final de TCP.

otTcpEndpointInitializeArgs

Esta estructura contiene argumentos a la otTcpEndpointInitialize () función.

otTcpListener

Esta estructura representa un oyente de TCP.

otTcpListenerInitializeArgs

Esta estructura contiene argumentos a la otTcpListenerInitialize () función.

Enumeraciones

enumeración anónima

 anonymous enum

Esto define la enumeración banderas pasados a otTcpConnect () .

enumeración anónima

 anonymous enum

Esta enumeración define banderas pasados a otTcpSendByReference .

otTcpDisconnectedReason

 otTcpDisconnectedReason

otTcpIncomingConnectionAction

 otTcpIncomingConnectionAction

Esta enumeración define las acciones de conexión entrantes.

Esto se utiliza en otTcpAcceptReady () de devolución de llamada.

Propiedades
OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT

Acepta la conexión entrante.

OT_TCP_INCOMING_CONNECTION_ACTION_DEFER

Aplazar (ignorar en silencio) la conexión entrante.

OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE

Rechace la conexión entrante.

Typedefs

otLinkedBuffer

struct otLinkedBuffer otLinkedBuffer

Una estructura de búfer vinculada para su uso con TCP.

Un único otLinkedBuffer estructura hace referencia a una matriz de bytes en la memoria, a través de MDATA y mLength. El campo mNext se utiliza para formar una cadena de otLinkedBuffer estructuras.

otTcpAcceptDone

void(* otTcpAcceptDone)(otTcpListener *aListener, otTcpEndpoint *aEndpoint, const otSockAddr *aPeer)

Esta devolución de llamada indica que la conexión TCP ahora está lista para la comunicación bidireccional.

En el caso de TCP Fast Open, esto puede ser antes de que se haya completado realmente el protocolo de enlace de la conexión TCP. La aplicación se proporciona con los punteros de contexto para el oyente TCP que aceptó la conexión y el punto final TCP en el que se aceptó. El contexto proporcionado es el asociado con el oyente de TCP.

Detalles
Parámetros
[in] aListener
El oyente de TCP que coincide con la conexión entrante.
[in] aEndpoint
El punto final de TCP en el que se aceptó la conexión entrante.
[in] aPeer
el host y el puerto desde el que se originó la conexión entrante.

otTcpAcceptReady

otTcpIncomingConnectionAction(* otTcpAcceptReady)(otTcpListener *aListener, const otSockAddr *aPeer, otTcpEndpoint **aAcceptInto)

Esta devolución de llamada indica que ha llegado una conexión entrante que coincide con este oyente de TCP.

La respuesta típica es que la aplicación acepte la conexión entrante. Lo hace mediante poblar aAcceptInto con un puntero a la otTcpEndpoint en la que acepte la conexión entrante. Este otTcpEndpoint ya debe ser inicializado usando otTcpEndpointInitialize () . Luego, la aplicación devuelve OT_TCP_INCOMING_CONNECTION_ACTION_ACCEPT.

Alternativamente, la aplicación puede negarse a aceptar la conexión entrante. Hay dos formas en que la aplicación puede hacer esto. Primero, si la aplicación devuelve OT_TCP_INCOMING_CONNECTION_ACTION_DEFER, OpenThread ignora silenciosamente la solicitud de establecimiento de conexión; el par de conexión probablemente retransmitirá la solicitud, momento en el que se volverá a llamar a la devolución de llamada. Esto es valioso si los recursos no están disponibles actualmente para aceptar la conexión, pero pueden estar disponibles cuando el par de la conexión retransmite su intento de establecimiento de la conexión. En segundo lugar, si la aplicación devuelve OT_TCP_INCOMING_CONNECTION_ACTION_REFUSE, OpenThread envía un mensaje de "conexión rechazada" al host que intentó establecer una conexión. Si la aplicación disminuye la conexión entrante, no se requiere para poblar aAcceptInto .

Detalles
Parámetros
[in] aListener
El oyente de TCP que coincide con la conexión entrante.
[in] aPeer
El host y el puerto desde el que se origina la conexión entrante.
[out] aAcceptInto
El punto final de TCP en el que aceptar la conexión entrante.
Devoluciones
Descripción de cómo manejar la conexión entrante.

otTcpBytesAcked

void(* otTcpBytesAcked)(otTcpEndpoint *aEndpoint, size_t aNumBytes)

Esta devolución de llamada informa a la aplicación que los primeros aNumBytes en el búfer de emisión han sido reconocidos por los pares de conexión y que su memoria subyacente pueden ser recuperados por la aplicación.

Esta devolución de llamada no es necesaria para el correcto funcionamiento de TCP. La mayoría de las aplicaciones sólo puede confiar en la otTcpSendDone () de devolución de llamada. Si una aplicación desea información detallada a medida que la memoria en el búfer de envío vuelve a estar disponible (en lugar de esperar a que los datos de un búfer vinculado completo estén disponibles) o alguna indicación de si la conexión está progresando, puede registrar esta devolución de llamada .

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP para la conexión.
[in] aNumBytes
El número de bytes reconocidos recientemente por el par de conexión.

otTcpDisconnected

void(* otTcpDisconnected)(otTcpEndpoint *aEndpoint, otTcpDisconnectedReason aReason)

Esta devolución de llamada indica que la conexión se interrumpió y ya no se debe utilizar, o que una conexión ha entrado en el estado TIME-WAIT.

Puede ocurrir si un intento de establecimiento de la conexión (iniciado llamando otTcpConnect) ( ) falla, o cualquier punto a partir de entonces (por ejemplo, si los tiempos de conexión fuera o un segmento RST se recibe desde el par de conexión). Una vez que esto incendios de devolución de llamada, todos los recursos que la aplicación proporcionado para esta conexión (es decir, cualquier otLinkedBuffers y la memoria hacen referencia a, pero no el TCP de punto final en sí o espacio para el búferes de recepción) puede ser recuperada. En el caso de una conexión que ingresa al estado TIME-WAIT, esta devolución de llamada se llama dos veces, una vez al ingresar al estado TIME-WAIT (con OT_TCP_DISCONNECTED_REASON_TIME_WAIT, y nuevamente cuando expira el estado TIME-WAIT (con OT_TCP_DISCONNECTED_REASON_NORMAL).

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP cuya conexión se ha perdido.
[in] aReason
La razón por la que se perdió la conexión.

otTcpDisconnectedReason

enum otTcpDisconnectedReason otTcpDisconnectedReason

otTcpEndpoint

struct otTcpEndpoint otTcpEndpoint

otTcpEndpointInitializeArgs

struct otTcpEndpointInitializeArgs otTcpEndpointInitializeArgs

Esta estructura contiene argumentos a la otTcpEndpointInitialize () función.

otTcpEstablish

void(* otTcpEstablished)(otTcpEndpoint *aEndpoint)

Esta devolución de llamada informa a la aplicación que el protocolo de enlace de 3 vías de TCP está completo y que la conexión ahora está establecida.

Detalles
Parámetros
[in] aEndpoint
El punto final TCP cuya conexión ahora está establecida.

otTcpIncomingConnectionAction

enum otTcpIncomingConnectionAction otTcpIncomingConnectionAction

Esta enumeración define las acciones de conexión entrantes.

Esto se utiliza en otTcpAcceptReady () de devolución de llamada.

otTcpListener

struct otTcpListener otTcpListener

otTcpListenerInitializeArgs

struct otTcpListenerInitializeArgs otTcpListenerInitializeArgs

Esta estructura contiene argumentos a la otTcpListenerInitialize () función.

otTcpReceiveAvailable

void(* otTcpReceiveAvailable)(otTcpEndpoint *aEndpoint, size_t aBytesAvailable, bool aEndOfStream, size_t aBytesRemaining)

Esta devolución de llamada indica el número de bytes disponibles para el consumo del búfer de recepción.

Se llama siempre que se agregan bytes al búfer de recepción y cuando se llega al final de la secuencia. Si se ha alcanzado el final de la secuencia (es decir, si no hay más datos estarán disponibles para leer porque la otra parte la conexión ha cerrado su extremo de la conexión para la escritura), entonces aEndOfStream es cierto. Por último, aBytesRemaining indica cuánta capacidad que queda en el búfer para almacenar los datos adicionales que llega.

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP para la conexión.
[in] aBytesAvailable
El número de bytes en el búfer de recepción de la conexión.
[in] aEndOfStream
Indica si se pueden recibir datos adicionales, más allá de lo que ya está en el búfer de recepción de la conexión.
[in] aBytesRemaining
El número de bytes adicionales que se pueden recibir antes de que se llene el búfer de recepción.

otTcpSendDone

void(* otTcpSendDone)(otTcpEndpoint *aEndpoint, otLinkedBuffer *aData)

Esta devolución de llamada informa a la aplicación que los datos proporcionados en las aData han sido reconocidos por los pares de conexión y que aData y los datos que contiene pueden ser recuperados por la aplicación.

Los aData están garantizados para ser idénticos a los pasados a través de TCP otTcpSendByReference () , incluyendo cualquier extensiones efectuadas a través de otTcpSendByExtension () .

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP para la conexión.
[in] aData
Un puntero a la otLinkedBuffer que pueden ser recuperados.

otTcpSendReady

void(* otTcpSendReady)(otTcpEndpoint *aEndpoint)

Esta devolución de llamada informa a la aplicación que si se agregan datos al búfer de envío, algunos de ellos se transmitirán inmediatamente sin demora, en lugar de estar en la cola de transmisión una vez que el par ACK algunos datos.

Después de llamar a otTcpSendByReference () o otTcpSendByExtension () , el otTcpSendReady () de devolución de llamada se garantiza que se llama, ya sea inmediatamente (si la conexión ya está listo) o en algún momento en el futuro (una vez que la conexión se vuelve listo para más datos).

Esta devolución de llamada no es necesaria para el correcto funcionamiento de TCP. Si se agregan más datos al búfer de envío de los que se pueden transmitir sin demora, simplemente se pondrán en cola para su transmisión en un momento posterior. Esta devolución de llamada debe usarse solo en los casos en los que se desea tener alguna seguridad de que los datos agregados al búfer de envío se enviarán pronto (por ejemplo, TCP no esperará a que el destinatario acuse primero algunos otros datos antes de enviarlos). Por ejemplo, puede usar esta devolución de llamada si prefiere que se eliminen sus datos antes que desarrollar una acumulación de datos en su búfer de envío. Pero para la mayoría de las aplicaciones, donde esto no es una preocupación, se espera que uno no use esta devolución de llamada en absoluto.

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP para la conexión.

Funciones

otTcpAbort

otError otTcpAbort(
  otTcpEndpoint *aEndpoint
)

Finaliza a la fuerza la conexión TCP asociada con este punto final TCP.

Esto hace que de inmediato el punto final TCP libre para el uso de otra conexión y se vacía el envío y recepción tampones, transferencia de la propiedad de los datos proporcionados por la aplicación en otTcpSendByReference () devuelve la llamada a la aplicación. Las devoluciones de llamada y la memoria del punto final TCP para el búfer de recepción permanecen asociadas con el punto final TCP.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura de punto final TCP que representa el punto final TCP para abortar.
Valores devueltos
OT_ERROR_NONE
Anuló con éxito la conexión del punto final TCP.
OT_ERROR_FAILED
No se pudo abortar la conexión del extremo TCP.

otTcpBind

otError otTcpBind(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName
)

Vincula el punto final TCP a una dirección IP y un puerto.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final de TCP para enlazar.
[in] aSockName
La dirección y el puerto al que enlazar este punto final TCP.
Valores devueltos
OT_ERROR_NONE
Se vinculó correctamente el punto final de TCP.
OT_ERROR_FAILED
No se pudo vincular el extremo TCP.

otTcpCommitReceive

otError otTcpCommitReceive(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

Informa la pila TCP que la aplicación tiene acabados de procesamiento aNumBytes bytes de datos al inicio del buffer de recepción y que la necesidad pila TCP no continúe manteniendo dichos bytes en el búfer de recepción.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP que representa el punto final TCP en el que recibir datos.
[in] aNumBytes
El número de bytes consumidos.
[in] aFlags
Banderas que especifican opciones para esta operación (ninguna todavía).
Valores devueltos
OT_ERROR_NONE
Completó con éxito la operación de recepción.
OT_ERROR_FAILED
No se pudo completar la operación de recepción.

otTcpConnect

otError otTcpConnect(
  otTcpEndpoint *aEndpoint,
  const otSockAddr *aSockName,
  uint32_t aFlags
)

Registra el host remoto y el puerto para esta conexión.

De forma predeterminada, se utiliza TCP Fast Open. Esto significa que esta función se limita a registrar el host remoto y el puerto, y que el establecimiento de la conexión TCP apretón de manos sólo ocurre en la primera llamada a otTcpSendByReference () . Fast TCP abierto se puede desactivar de forma explícita utilizando aFlags , en cuyo caso se inicia de inmediato el establecimiento negociación de la conexión TCP.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP para conectarse.
[in] aSockName
La dirección IP y el puerto del host al que conectarse.
[in] aFlags
Banderas que especifican opciones para esta operación (consulte la enumeración anterior).
Valores devueltos
OT_ERROR_NONE
Completó con éxito la operación.
OT_ERROR_FAILED
No se pudo completar la operación.

otTcpEndpointDeinitialize

otError otTcpEndpointDeinitialize(
  otTcpEndpoint *aEndpoint
)

Desinicializa este punto final TCP.

Esto significa que OpenThread ya no realiza un seguimiento de este punto final TCP y desasigna todos los recursos que ha asignado internamente para este punto final TCP. La aplicación puede reutilizar la memoria que respalda el punto final TCP como lo crea conveniente.

Si corresponde a una conexión TCP en vivo, la conexión se termina sin contemplaciones (como en otTcpAbort () ). Todos los recursos de la aplicación ha provisto para este punto final TCP (memorias intermedias vinculadas a la memoria de envío, memoria para el búfer de recepción, el aEndpoint propia estructura, etc.) se devuelve inmediatamente a la aplicación.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final de TCP para desinicializar.
Valores devueltos
OT_ERROR_NONE
Se desinicializó correctamente el punto final de TCP.
OT_ERROR_FAILED
No se pudo desinicializar el extremo TCP.

otTcpEndpointGetContext

void * otTcpEndpointGetContext(
  otTcpEndpoint *aEndpoint
)

Obtiene el puntero del contexto que se asoció con aEndpoint tras la inicialización.

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP cuyo contexto se va a obtener.
Devoluciones
El puntero de contexto asociado con aEndpoint .

otTcpEndpointGetInstance

otInstance * otTcpEndpointGetInstance(
  otTcpEndpoint *aEndpoint
)

Obtiene la otInstance que se asoció con aEndpoint tras la inicialización.

Detalles
Parámetros
[in] aEndpoint
El punto final de TCP cuya instancia se va a obtener.
Devoluciones
El puntero otInstance asociado con aEndpoint .

otTcpEndpointInitialize

otError otTcpEndpointInitialize(
  otInstance *aInstance,
  otTcpEndpoint *aEndpoint,
  otTcpEndpointInitializeArgs *aArgs
)

Inicializa un punto final TCP.

Llamar a esta función hace que OpenThread no perder de vista el punto final TCP y de almacenamiento y recuperación de datos TCP en el interior del aEndpoint . La aplicación debe abstenerse de acceder directamente o modificar los campos en aEndpoint . Si la aplicación necesita para recuperar la memoria copias aEndpoint , debe llamar otTcpEndpointDeinitialize () .

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
[in] aEndpoint
Un puntero a una estructura de punto final TCP.
[in] aArgs
Un puntero a una estructura de argumentos.
Valores devueltos
OT_ERROR_NONE
Se abrió correctamente el punto final de TCP.
OT_ERROR_FAILED
No se pudo abrir el punto final de TCP.

otTcpGetLocalAddress

const otSockAddr * otTcpGetLocalAddress(
  const otTcpEndpoint *aEndpoint
)

Obtiene un puntero al puerto y al host local de un punto final TCP.

El contenido del host y el puerto puede estar obsoleto si este socket no está en un estado conectado y no se ha vinculado después de que se desconectó por última vez.

Detalles
Parámetros
[in] aEndpoint
El punto final TCP cuyo puerto y host local obtener.
Devoluciones
El anfitrión local y el puerto de aEndpoint .

otTcpGetPeerAddress

const otSockAddr * otTcpGetPeerAddress(
  const otTcpEndpoint *aEndpoint
)

Obtiene un puntero al puerto y al host de un punto final de TCP.

El contenido del host y el puerto puede estar obsoleto si este socket no está en un estado conectado.

Detalles
Parámetros
[in] aEndpoint
El punto final TCP cuyo puerto y host del par se va a obtener.
Devoluciones
El host y el puerto de la conexión entre pares de aEndpoint .

otTcpListen

otError otTcpListen(
  otTcpListener *aListener,
  const otSockAddr *aSockName
)

Hace que las conexiones TCP entrantes que coinciden con la dirección IP y el puerto especificados activen las devoluciones de llamada de este oyente TCP.

Detalles
Parámetros
[in] aListener
Un puntero a la estructura de escucha de TCP que debería comenzar a escuchar.
[in] aSockName
La dirección y el puerto en el que escuchar las conexiones entrantes.
Valores devueltos
OT_ERROR_NONE
Se inició correctamente la escucha en el oyente de TCP.
OT_ERROR_FAILED
No se pudo iniciar la escucha en el oyente de TCP.

otTcpListenerDeinitialize

otError otTcpListenerDeinitialize(
  otTcpListener *aListener
)

Desinicializa este oyente TCP.

Esto significa que OpenThread ya no realiza un seguimiento de este oyente de TCP y desasigna todos los recursos que ha asignado internamente para este oyente de TCP. La aplicación puede reutilizar la memoria que respalda al oyente TCP como lo crea conveniente.

Si el oyente de TCP está escuchando actualmente, deja de escuchar.

Detalles
Parámetros
[in] aListener
Un puntero a la estructura de escucha de TCP para desinicializar.
Valores devueltos
OT_ERROR_NONE
Se desinicializó correctamente el oyente de TCP.
OT_ERROR_FAILED
No se pudo desinicializar el escucha de TCP.

otTcpListenerGetContext

void * otTcpListenerGetContext(
  otTcpListener *aListener
)

Obtiene el puntero del contexto que se asoció con aListener tras la inicialización.

Detalles
Parámetros
[in] aListener
El oyente de TCP cuyo contexto se va a obtener.
Devoluciones
El puntero de contexto asociado con aListener .

otTcpListenerGetInstance

otInstance * otTcpListenerGetInstance(
  otTcpListener *aListener
)

Obtiene la otInstance que se asoció con aListener tras la inicialización.

Detalles
Parámetros
[in] aListener
El oyente de TCP cuya instancia se va a obtener.
Devoluciones
El puntero otInstance asociado con aListener .

otTcpListenerInitialize

otError otTcpListenerInitialize(
  otInstance *aInstance,
  otTcpListener *aListener,
  otTcpListenerInitializeArgs *aArgs
)

Inicializa un oyente de TCP.

Llamar a esta función hace que OpenThread para realizar un seguimiento de la escucha TCP y almacenar y recuperar datos TCP en el interior aListener . La aplicación debe abstenerse de acceder directamente o modificar los campos en aListener . Si la aplicación necesita para recuperar el respaldo de la memoria aListener , debe llamar otTcpListenerDeinitialize () .

Detalles
Parámetros
[in] aInstance
Un puntero a una instancia de OpenThread.
[in] aListener
Un puntero a una estructura de escucha de TCP.
[in] aArgs
Un puntero a una estructura de argumentos.
Valores devueltos
OT_ERROR_NONE
Se abrió correctamente el oyente de TCP.
OT_ERROR_FAILED
No se pudo abrir el oyente de TCP.

otTcpReceiveByReference

otError otTcpReceiveByReference(
  const otTcpEndpoint *aEndpoint,
  const otLinkedBuffer **aBuffer
)

Proporciona a la aplicación una cadena de búfer vinculada que hace referencia a los datos que se encuentran actualmente en el búfer de recepción de TCP.

La cadena de tampón de ligado es válido hasta que el "reciben listo" devolución de llamada se invoca siguiente, o hasta la siguiente llamada a otTcpReceiveContiguify () o otTcpCommitReceive () .

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP que representa el punto final TCP en el que recibir datos.
[out] aBuffer
Un puntero a la cadena de búfer vinculada que hace referencia a los datos que se encuentran actualmente en el búfer de recepción.
Valores devueltos
OT_ERROR_NONE
Completó con éxito la operación.
OT_ERROR_FAILED
No se pudo completar la operación.

otTcpReceiveContiguify

otError otTcpReceiveContiguify(
  otTcpEndpoint *aEndpoint
)

Reorganiza el búfer de recepción para que sea completamente contiguo en la memoria.

Esto es opcional; una aplicación puede simplemente atravesar la cadena de tampón de ligado obtenido llamando otTcpReceiveByReference . Algunas aplicaciones pueden desear llamar a esta función para hacer que el búfer de recepción sea contiguo para simplificar el procesamiento de sus datos, pero esto se produce a expensas del tiempo de la CPU para reorganizar los datos en el búfer de recepción.

Detalles
Parámetros
[in] aEndpoint
Un puntero al punto final de TCP cuyo búfer de recepción se va a reorganizar.
Valores devueltos
OT_ERROR_NONE
Completó con éxito la operación.
OT_ERROR_FAILED
No se pudo completar la operación.

otTcpSendByExtension

otError otTcpSendByExtension(
  otTcpEndpoint *aEndpoint,
  size_t aNumBytes,
  uint32_t aFlags
)

Añade datos al buffer de envío mediante la extensión de la longitud de la final otLinkedBuffer en el buffer de envío por la cantidad especificada.

Si el búfer de envío está vacío, la operación falla.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP que representa el punto final TCP al que enviar datos.
[in] aNumBytes
El número de bytes en los que se extenderá la longitud del búfer vinculado final.
[in] aFlags
Banderas que especifican opciones para esta operación (consulte la enumeración anterior).
Valores devueltos
OT_ERROR_NONE
Datos agregados con éxito al búfer de envío.
OT_ERROR_FAILED
Error al agregar datos al búfer de envío.

otTcpSendByReference

otError otTcpSendByReference(
  otTcpEndpoint *aEndpoint,
  otLinkedBuffer *aBuffer,
  uint32_t aFlags
)

Agrega los datos referenciados por la memoria temporal ligado apuntado por aBuffer a la memoria de envío.

Tras una llamada exitosa a esta función, el búfer vinculado y los datos a los que hace referencia son propiedad de la pila TCP; no deben ser modificados por la aplicación hasta que una devolución de llamada de "envío realizado" devuelva la propiedad de esos objetos a la aplicación. Es aceptable llamar a esta función para agregar otro búfer vinculado a la cola de envío, incluso si la devolución de llamada "envío realizado" para una invocación anterior de esta función aún no se ha disparado.

Tenga en cuenta que aBuffer no debe ser encadenado; su campo mNext debe ser NULL. Si se agregarán datos adicionales inmediatamente después de esta llamada, entonces el indicador OT_TCP_SEND_MORE_TO_COME debe usarse como una pista para la implementación de TCP.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP que representa el punto final TCP al que enviar datos.
[in] aBuffer
Un puntero a la cadena de búfer vinculada que hace referencia a datos para agregar al búfer de envío.
[in] aFlags
Banderas que especifican opciones para esta operación (consulte la enumeración anterior).
Valores devueltos
OT_ERROR_NONE
Datos agregados con éxito al búfer de envío.
OT_ERROR_FAILED
Error al agregar datos al búfer de envío.

otTcpSendEndOfStream

otError otTcpSendEndOfStream(
  otTcpEndpoint *aEndpoint
)

Informa al par de conexión que este punto final TCP no enviará más datos.

Esto debe usarse cuando la aplicación no tiene más datos para enviar al par de conexión. Para esta conexión, las lecturas futuras en el par de conexión darán como resultado la condición de "fin de flujo" y las escrituras futuras en este punto final de conexión fallarán.

La condición de "fin de flujo" solo se aplica después de que el par de conexión haya recibido cualquier dato proporcionado previamente a la pila TCP para enviar.

Detalles
Parámetros
[in] aEndpoint
Un puntero a la estructura del punto final TCP que representa el punto final TCP para cerrar.
Valores devueltos
OT_ERROR_NONE
Se puso en cola con éxito la condición de "fin de flujo" para la transmisión.
OT_ERROR_FAILED
No se pudo poner en cola la condición de "fin de flujo" para la transmisión.

otTcpStopListening

otError otTcpStopListening(
  otTcpListener *aListener
)

Hace que este oyente de TCP deje de escuchar las conexiones entrantes.

Detalles
Parámetros
[in] aListener
Un puntero a la estructura de escucha de TCP que debería dejar de escuchar.
Valores devueltos
OT_ERROR_NONE
Dejó de escuchar con éxito en el oyente de TCP.
OT_ERROR_FAILED
No se pudo dejar de escuchar en el oyente de TCP.

Macros

OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_FEW_HOPS 2599

Tamaño de búfer recomendado para conexiones TCP que atraviesan aproximadamente 3 saltos inalámbricos o menos.

En plataformas donde la memoria está particularmente limitada y en situaciones donde no es necesario un ancho de banda alto, puede ser conveniente seleccionar manualmente un tamaño de búfer más pequeño.

OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS

 OT_TCP_RECEIVE_BUFFER_SIZE_MANY_HOPS 4158

Tamaño de búfer recomendado para conexiones TCP que atraviesan muchos saltos inalámbricos.

Si la conexión TCP atraviesa una gran cantidad de saltos (más de 6 aproximadamente), puede ser aconsejable seleccionar manualmente un tamaño de búfer grande.