TCP/TLS Client/Server
TCP/TLS client/server functions. More...
Modules | |
Types | |
TCP client/server types. | |
Functions | |
zos_result_t | zn_tcp_connect (zos_interface_t interface, const char *host, uint16_t port, uint32_t *handle) |
Connect to remote TCP server. More... | |
zos_result_t | zn_tls_connect (zos_interface_t interface, const char *host, uint16_t port, uint32_t *handle) |
Connect to remote TCP server with TLS security. More... | |
zos_result_t | zn_tcp_connect_with_config (const zos_tcp_config_t *config, uint32_t *handle) |
Connect to remote TCP/TLS server with configuration. More... | |
zos_result_t | zn_tcp_listen (zos_interface_t interface, uint16_t port) |
Start TCP server. More... | |
zos_result_t | zn_tcp_stop_listening (void) |
Stop TCP server. More... | |
zos_result_t | zn_tls_listen (zos_interface_t interface, uint16_t port) |
Start TCP server with TLS security. More... | |
zos_result_t | zn_tls_stop_listening (void) |
Stop TLS server. More... | |
zos_result_t | zn_tcp_disconnect (uint32_t handle) |
Close TCP/TLS stream. More... | |
zos_result_t | zn_tcp_read (uint32_t handle, void *data, uint32_t max_size, uint32_t *bytes_read) |
Read TCP/TLS stream data. More... | |
zos_result_t | zn_tcp_read_with_buffer (uint32_t handle, zos_buffer_t *buffer) |
Read TCP stream data into buffer. More... | |
zos_result_t | zn_tcp_write (uint32_t handle, const void *data, uint32_t size, zos_bool_t auto_flush) |
Write TCP/TLS stream data. More... | |
zos_result_t | zn_tcp_poll (uint32_t handle, uint32_t *bytes_available) |
Poll TCP/TLS stream for RX data. More... | |
zos_result_t | zn_tcp_register_client_event_handlers (uint32_t handle, zos_stream_event_handler_t disconnect, zos_stream_event_handler_t receive) |
Register TCP/TLS client event handlers. More... | |
void | zn_tcp_register_server_event_handlers (zos_stream_event_handler_t connect, zos_stream_event_handler_t disconnect, zos_stream_event_handler_t receive) |
Register TCP/TLS server event handlers. More... | |
zos_result_t | zn_tcp_get_client_info (uint32_t handle, char *host_buffer, uint8_t buffer_len, uint16_t *port) |
Get TCP/TLS client info. More... | |
Detailed Description
TCP/TLS client/server functions.
Function Documentation
zos_result_t zn_tcp_connect | ( | zos_interface_t | interface, |
const char * | host, |
||
uint16_t | port, |
||
uint32_t * | handle |
||
) |
Connect to remote TCP server.
See ZentriOS Command API documentation: tcp_client.
- Parameters
-
[in] interface
Interface to open connection [in] host
hostname or IPv4 address of remote server [in] port
Listening port of remote TCP server [out] handle
Stream handle of connection
- Returns
- result of api, see zos_result_t
zos_result_t zn_tcp_connect_with_config | ( | const zos_tcp_config_t * | config, |
uint32_t * | handle |
||
) |
Connect to remote TCP/TLS server with configuration.
See ZentriOS Command API documentation: tcp_client.
See zn_tcp_register_client_event_handlers() for registering event handlers.
- Parameters
-
[in] config
Connection configuration, see zos_tcp_config_t [out] handle
Stream handle of connection
- Returns
- result of api, see zos_result_t
zos_result_t zn_tcp_disconnect | ( | uint32_t | handle | ) |
Close TCP/TLS stream.
See ZentriOS Command API documentation: stream_close.
- Parameters
-
[in] handle
Handle of stream to close
- Returns
- zos_result_t result of api call
- Examples:
- basic/tcp_client/tcp_client.c, and demo/pong/link_client.c.
zos_result_t zn_tcp_get_client_info | ( | uint32_t | handle, |
char * | host_buffer, |
||
uint8_t | buffer_len, |
||
uint16_t * | port |
||
) |
Get TCP/TLS client info.
See ZentriOS Command API documentation: stream_list.
zos_result_t zn_tcp_listen | ( | zos_interface_t | interface, |
uint16_t | port |
||
) |
Start TCP server.
See ZentriOS Command API documentation: tcp_server start.
See zn_tcp_register_server_event_handlers() for registering client event handlers.
- Parameters
-
[in] interface
Interface to start server [in] port
Listening port of TCP server
- Returns
- result of api, see zos_result_t
zos_result_t zn_tcp_poll | ( | uint32_t | handle, |
uint32_t * | bytes_available |
||
) |
Poll TCP/TLS stream for RX data.
- Parameters
-
[in] handle
Handle of stream to poll [out] bytes_available
Pointer to hold number of bytes available to read
- Returns
- zos_result_t result of api call
- Examples:
- basic/tcp_client/tcp_client.c.
zos_result_t zn_tcp_read | ( | uint32_t | handle, |
void * | data, |
||
uint32_t | max_size, |
||
uint32_t * | bytes_read |
||
) |
Read TCP/TLS stream data.
See ZentriOS Command API documentation: stream_read.
- Parameters
-
[in] handle
Stream handle returned by API call [out] data
Buffer to hold read data [in] max_size
Maximum amount of data to read [out] bytes_read
Pointer to hold actual amount of data read (set NULL if not used)
- Returns
- zos_result_t result of api call
zos_result_t zn_tcp_read_with_buffer | ( | uint32_t | handle, |
zos_buffer_t * | buffer |
||
) |
Read TCP stream data into buffer.
See zn_read_with_buffer() for more information.
- Parameters
-
handle
Stream handle buffer
Buffer to specify how much data to read, then return how much data was read with pointer to data
- Returns
- zos_result_t result of api call
zos_result_t zn_tcp_register_client_event_handlers | ( | uint32_t | handle, |
zos_stream_event_handler_t | disconnect, |
||
zos_stream_event_handler_t | receive |
||
) |
Register TCP/TLS client event handlers.
The client connection should have been previously opened with:
- Note
- The event handlers execute in the Zap thread context
- Parameters
-
[in] handle
Client stream handle [in] disconnect
Client disconnect event handler [in] receive
Client receive data event handler
- Returns
- zos_result_t result of api call
- Examples:
- basic/tcp_client/tcp_client.c, and demo/pong/link_client.c.
void zn_tcp_register_server_event_handlers | ( | zos_stream_event_handler_t | connect, |
zos_stream_event_handler_t | disconnect, |
||
zos_stream_event_handler_t | receive |
||
) |
Register TCP/TLS server event handlers.
Register event handlers for TCP server client events. The TCP server must first be started with:
- Note
- The event handlers execute in the Zap thread context
- Parameters
-
[in] connect
client connect event handler [in] disconnect
client disconnect event handler [in] receive
client data received event handler
- Examples:
- basic/softap_tcp_server/softap_tcp_server.c, and demo/pong/link_server.c.
zos_result_t zn_tcp_stop_listening | ( | void |
| ) |
Stop TCP server.
See ZentriOS Command API documentation: tcp_server stop.
- Returns
- result of api, see zos_result_t
zos_result_t zn_tcp_write | ( | uint32_t | handle, |
const void * | data, |
||
uint32_t | size, |
||
zos_bool_t | auto_flush |
||
) |
Write TCP/TLS stream data.
See ZentriOS Command API documentation: stream_write.
- Parameters
-
[in] handle
Stream handle returned by API call [in] data
Data to write to stream [in] size
Size of data in bytes to write [in] auto_flush
If ZOS_TRUE, only flush data when the internal buffer is full, ZOS_FALSE flush the data immediately
- Returns
- zos_result_t result of api call
zos_result_t zn_tls_connect | ( | zos_interface_t | interface, |
const char * | host, |
||
uint16_t | port, |
||
uint32_t * | handle |
||
) |
Connect to remote TCP server with TLS security.
See ZentriOS Command API documentation: tls_client.
See zn_tcp_register_client_event_handlers() for registering event handlers.
- Parameters
-
[in] interface
Interface to open connection [in] host
hostname or IPv4 address of remote server [in] port
Listening port of TCP server [out] handle
Stream handle of connection
- Returns
- result of api, see zos_result_t
zos_result_t zn_tls_listen | ( | zos_interface_t | interface, |
uint16_t | port |
||
) |
Start TCP server with TLS security.
See ZentriOS Command API documentation: tls_server start.
See zn_tcp_register_server_event_handlers() for registering client event handlers.
- Parameters
-
[in] interface
Interface to start server [in] port
Listening port of TLS server
- Returns
- result of api, see zos_result_t
zos_result_t zn_tls_stop_listening | ( | void |
| ) |
Stop TLS server.
See ZentriOS Command API documentation: tls_server stop.
- Returns
- result of api, see zos_result_t