20#include "lwip/sockets.h" 
   22#include "lwip/netdb.h" 
   34#define PORT                CONFIG_EXAMPLE_PORT 
   35#define EXAMPLE_DELAY_MS    100 
   36#define CLIENT_IP_ADDR      INADDR_ANY 
   46static const char *
TAG = 
"ap";
 
   47static const char *
payload = 
"This is a message from server.";
 
   50#define EX_THREAD_NAME          "ex_thread" 
   51#define EX_THREAD_PRIORITY      XF_OSAL_PRIORITY_NORMOL 
   52#define EX_THREAD_STACK_SIZE    (1024 * 4) 
   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);
 
#define EX_THREAD_PRIORITY
 
#define EX_THREAD_STACK_SIZE
 
xf_err_t ex_easy_wifi_ap(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,...)