88    int sockfd_listen = 0;
 
   96    struct sockaddr_in dest_addr = {0};
 
   97    struct sockaddr_in source_addr = {0};
 
   98    struct timeval timeout = {0};
 
  101    dest_addr.sin_family        = AF_INET;
 
  102    dest_addr.sin_port          = htons(
PORT);
 
  103    addr_family                 = AF_INET;
 
  104    ip_protocol                 = IPPROTO_IP;
 
  106    sockfd_listen = socket(addr_family, SOCK_STREAM, ip_protocol);
 
  107    if (sockfd_listen < 0) {
 
  108        XF_LOGE(
TAG, 
"Unable to create socket: errno %d", errno);
 
  114    err = bind(sockfd_listen, (
struct sockaddr *)&dest_addr, 
sizeof(dest_addr));
 
  116        XF_LOGE(
TAG, 
"Socket unable to bind: errno %d", errno);
 
  122    err = listen(sockfd_listen, 1);
 
  124        XF_LOGE(
TAG, 
"Error occurred during listen: errno %d", errno);
 
  130    socklen_t addr_len = 
sizeof(source_addr);
 
  131    sockfd_conn = accept(sockfd_listen, (
struct sockaddr *)&source_addr, &addr_len);
 
  132    if (sockfd_conn < 0) {
 
  133        XF_LOGE(
TAG, 
"Unable to accept connection: errno %d", errno);
 
  139    setsockopt(sockfd_conn, SOL_SOCKET, SO_RCVTIMEO, &timeout, 
sizeof(timeout));
 
  142    setsockopt(sockfd_conn, SOL_SOCKET, SO_KEEPALIVE, &keepAlive, 
sizeof(
int));
 
  143    setsockopt(sockfd_conn, IPPROTO_TCP, TCP_KEEPIDLE, &keepIdle, 
sizeof(
int));
 
  144    setsockopt(sockfd_conn, IPPROTO_TCP, TCP_KEEPINTVL, &keepInterval, 
sizeof(
int));
 
  145    setsockopt(sockfd_conn, IPPROTO_TCP, TCP_KEEPCNT, &keepCount, 
sizeof(
int));
 
  148        socklen_t socklen = 
sizeof(source_addr);
 
  149        int len = recvfrom(sockfd_conn,
 
  150                           rx_buffer, 
sizeof(rx_buffer) - 1, 0,
 
  151                           (
struct sockaddr *)&source_addr, &socklen);
 
  153            XF_LOGE(
TAG, 
"recvfrom failed: errno %d", errno);
 
  155        } 
else if (len == 0) {
 
  161        src_ip4.
addr = source_addr.sin_addr.s_addr;
 
  166        int payload_len = strlen(
payload);
 
  167        err = sendto(sockfd_conn,
 
  169                     (
struct sockaddr *)&source_addr, 
sizeof(source_addr));
 
  171            XF_LOGE(
TAG, 
"Error occurred during sending: errno %d", errno);
 
  181    if (sockfd_conn != -1) {
 
  182        shutdown(sockfd_conn, 0);
 
  183        closesocket(sockfd_conn);
 
  185    if (sockfd_listen != -1) {
 
  187        shutdown(sockfd_listen, 0);
 
  188        closesocket(sockfd_listen);
 
 
static const xf_osal_thread_attr_t s_thread_attr
 
static void _example_thread(void *argument)
 
static xf_osal_thread_t s_thread_hdl
 
static const char * payload
 
#define KEEPALIVE_INTERVAL