UDP Client/Server

UDP client/server functions. More...

Modules

Types
UDP client/server data types.
 

Functions

zos_result_t zn_udp_connect (const char *host, uint16_t remote_port, uint16_t local_port, uint32_t *handle)
 Connect to remote UDP server. More...
 
zos_result_t zn_udp_connect_with_config (const zos_udp_client_config_t *config, uint32_t *handle)
 Connect to remote UDP server. More...
 
zos_result_t zn_udp_listen (zos_interface_t interface, uint16_t local_port, uint32_t *handle)
 Start UDP server. More...
 
zos_result_t zn_udp_stop_listening (void)
 Stop UDP server on specified interface. More...
 
zos_result_t zn_udp_read (uint32_t handle, void *data, uint32_t max_size, uint32_t *bytes_read)
 Read UDP stream data. More...
 
zos_result_t zn_udp_read_with_buffer (uint32_t handle, zos_buffer_t *buffer)
 Read UDP stream data into buffer. More...
 
zos_result_t zn_udp_write (uint32_t handle, const void *data, uint32_t size)
 Write UDP stream data. More...
 
zos_result_t zn_udp_close (uint32_t handle)
 Close UDP stream. More...
 
zos_result_t zn_udp_poll (uint32_t handle, uint32_t *bytes_available)
 Poll UDP stream for RX data. More...
 
zos_result_t zn_udp_query (uint32_t *client_ip, uint16_t *client_port)
 Get current UDP server client info. More...
 
zos_result_t zn_udp_sendto (const void *data, uint32_t size, const char *host, uint16_t port)
 Send data to specific remote IP address/port. More...
 
zos_result_t zn_udp_receivefrom (zos_buffer_t *data_buffer, const char *host, uint16_t remote_port, uint32_t timeout)
 Receive data from specific remote host/port. More...
 
zos_result_t zn_udp_register_receive_event_handler (uint32_t handle, zos_stream_event_handler_t receive_handler)
 Register UDP data received event handler. More...
 

Detailed Description

UDP client/server functions.

Function Documentation

zos_result_t zn_udp_close ( uint32_t  handle)

Close UDP stream.

See ZentriOS Command API documentation: stream_close.

Parameters
[in]handleHandle of stream to close
Returns
zos_result_t result of api call
zos_result_t zn_udp_connect ( const char *  host,
uint16_t  remote_port,
uint16_t  local_port,
uint32_t *  handle 
)

Connect to remote UDP server.

See ZentriOS Command API documentation: udp_client.

Parameters
[in]hostRemote UDP server host or IP address
[in]remote_portRemote UDP server port
[in]local_portLocal UDP port, set to 0 to use any available port
[out]handleUDP stream handle
Returns
zos_result_t result of API
zos_result_t zn_udp_connect_with_config ( const zos_udp_client_config_t config,
uint32_t *  handle 
)

Connect to remote UDP server.

See ZentriOS Command API documentation: udp_client.

Parameters
[in]configConnection configuration, see zos_udp_client_config_t
[out]handleUDP stream handle
Returns
zos_result_t result of API
zos_result_t zn_udp_listen ( zos_interface_t  interface,
uint16_t  local_port,
uint32_t *  handle 
)

Start UDP server.

See ZentriOS Command API documentation: udp_server start.

Parameters
[in]interfaceInterface to start server, see zos_interface_t
[in]local_portPort for server to listen
[out]handleUDP stream handle
Returns
zos_result_t result of API
zos_result_t zn_udp_poll ( uint32_t  handle,
uint32_t *  bytes_available 
)

Poll UDP stream for RX data.

Parameters
[in]handleHandle of stream to poll
[out]bytes_availablePointer to hold number of bytes available to read
Returns
zos_result_t result of api call
zos_result_t zn_udp_query ( uint32_t *  client_ip,
uint16_t *  client_port 
)

Get current UDP server client info.

See ZentriOS Command API documentation: udp_server read -q.

Parameters
[out]client_ipIPv4 address of client
[out]client_portClient remote port
Returns
zos_result_t result of api call
zos_result_t zn_udp_read ( uint32_t  handle,
void *  data,
uint32_t  max_size,
uint32_t *  bytes_read 
)

Read UDP stream data.

See ZentriOS Command API documentation: stream_read.

Parameters
[in]handleStream handle returned by API call
[out]dataBuffer to hold read data
[in]max_sizeMaximum amount of data to read
[out]bytes_readPointer to hold actual amount of data read (set NULL if not used)
Returns
zos_result_t result of api call
Examples:
basic/udp_client/udp_client.c.
zos_result_t zn_udp_read_with_buffer ( uint32_t  handle,
zos_buffer_t buffer 
)

Read UDP stream data into buffer.

See zn_read_with_buffer() for more information.

Parameters
handleStream handle
bufferBuffer 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_udp_receivefrom ( zos_buffer_t data_buffer,
const char *  host,
uint16_t  remote_port,
uint32_t  timeout 
)

Receive data from specific remote host/port.

See zn_read_with_buffer() for details on how the data_buffer argument is used.

See ZentriOS Command API documentation: udp_server write

Parameters
[in,out]data_bufferBuffer to specify how much data to read, then return how much data was read with pointer to data
[in]hostRemote client host or IPv4 address
[in]remote_portPort of remote client
[in]timeoutMaximum time in milliseconds to wait for RX data
Returns
zos_result_t result of api call
zos_result_t zn_udp_register_receive_event_handler ( uint32_t  handle,
zos_stream_event_handler_t  receive_handler 
)

Register UDP data received event handler.

The registers a receive handler for either a UDP client or server.

Note
The event handler executes in the Zap Thread context
Parameters
[in]handleStream handle or UDP client or server
[in]receive_handlerHandler to be issued when UDP client/server has data to be read
Returns
zos_result_t result of api call
zos_result_t zn_udp_sendto ( const void *  data,
uint32_t  size,
const char *  host,
uint16_t  port 
)

Send data to specific remote IP address/port.

See ZentriOS Command API documentation: udp_server write

Parameters
[in]dataData to send
[in]sizeSize of data to send
[in]hosthostname or IPv4 address of remote client
[in]portClient's UDP port
Returns
zos_result_t result of api call
zos_result_t zn_udp_stop_listening ( void  )

Stop UDP server on specified interface.

See ZentriOS Command API documentation: udp_server stop.

Returns
zos_result_t result of API
zos_result_t zn_udp_write ( uint32_t  handle,
const void *  data,
uint32_t  size 
)

Write UDP stream data.

See ZentriOS Command API documentation: stream_write.

Parameters
[in]handleStream handle returned by API call
[in]dataData to write to stream
[in]sizeSize of data in bytes to write
Returns
zos_result_t result of api call