85 struct sockaddr_in dest_addr = {0};
86 struct sockaddr_in source_addr = {0};
87 struct timeval timeout = {0};
90 dest_addr.sin_family = AF_INET;
91 dest_addr.sin_port = htons(
PORT);
92 addr_family = AF_INET;
93 ip_protocol = IPPROTO_IP;
95 sockfd = socket(addr_family, SOCK_DGRAM, ip_protocol);
97 XF_LOGE(
TAG,
"Unable to create socket: errno %d", errno);
105 setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout,
sizeof(timeout));
108 int err = bind(sockfd, (
struct sockaddr *)&dest_addr,
sizeof(dest_addr));
110 XF_LOGE(
TAG,
"Socket unable to bind: errno %d", errno);
120 socklen_t socklen =
sizeof(source_addr);
121 int len = recvfrom(sockfd,
122 rx_buffer,
sizeof(rx_buffer) - 1, 0,
123 (
struct sockaddr *)&source_addr, &socklen);
125 XF_LOGE(
TAG,
"recvfrom failed: errno %d", errno);
131 src_ip4.
addr = source_addr.sin_addr.s_addr;
139 int err = sendto(sockfd,
141 (
struct sockaddr *)&source_addr,
sizeof(source_addr));
143 XF_LOGE(
TAG,
"Error occurred during sending: errno %d", errno);
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