20#include "lwip/sockets.h"
22#include "lwip/netdb.h"
34#define PORT CONFIG_EXAMPLE_PORT
35#define EXAMPLE_DELAY_MS 1000
45static const char *
TAG =
"sta";
46static const char *
payload =
"This is a message from client.";
49#define EX_THREAD_NAME "ex_thread"
50#define EX_THREAD_PRIORITY XF_OSAL_PRIORITY_NORMOL
51#define EX_THREAD_STACK_SIZE (1024 * 4)
89 struct sockaddr_in dest_addr = {0};
90 struct timeval timeout = {0};
92 dest_addr.sin_addr.s_addr = host_ip4.
addr;
93 dest_addr.sin_family = AF_INET;
94 dest_addr.sin_port = htons(
PORT);
95 addr_family = AF_INET;
96 ip_protocol = IPPROTO_IP;
98 sockfd = socket(addr_family, SOCK_STREAM, ip_protocol);
100 XF_LOGE(
TAG,
"Unable to create socket: errno %d", errno);
104 err = connect(sockfd, (
struct sockaddr *)&dest_addr,
sizeof(
struct sockaddr_in));
106 XF_LOGE(
TAG,
"Socket unable to connect: errno %d", errno);
116 setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &timeout,
sizeof(timeout));
122 int payload_len = strlen(
payload);
123 err = send(sockfd,
payload, payload_len, 0);
125 XF_LOGE(
TAG,
"Error occurred during sending: errno %d", errno);
131 int len = recv(sockfd, rx_buffer,
sizeof(rx_buffer) - 1, 0);
133 XF_LOGE(
TAG,
"recvfrom failed: errno %d", errno);
139 XF_LOGI(
TAG,
"Received %d bytes: \"%s\"", len, rx_buffer);
#define EX_THREAD_PRIORITY
#define EX_THREAD_STACK_SIZE
xf_err_t ex_easy_wifi_sta(void)
xf_ip4_addr_t ex_easy_wifi_sta_get_gw_ip(void)
#define XF_IP2STR(ipaddr)
xf_err_t xf_osal_thread_delete(xf_osal_thread_t thread)
终止线程的执行。
xf_osal_thread_t xf_osal_thread_create(xf_osal_thread_func_t func, void *argument, const xf_osal_thread_attr_t *attr)
创建一个线程并将其添加到活动线程中。
void * xf_osal_thread_t
线程句柄。
xf_err_t xf_osal_delay_ms(uint32_t ms)
(睡眠)等待超时,以 ms 为单位。
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 XF_LOGI(tag, format,...)
#define XF_LOGE(tag, format,...)