RTOS v2.x 以及之前版本
#define EXAMPLE_DNS "a3.tuyaus.com"
static void dns_task(void* pvParameters)
{
printf("Waiting for WiFi access point ...");
while(!got_ip_flag) {
vTaskDelay(2000 / portTICK_RATE_MS);
}
int ret = 0, retry = 0;
char *target_name = "www.baidu.com";
struct hostent *hp = NULL;
do {
hp = gethostbyname(target_name);
} while (hp == NULL && retry++ < 20);
if(hp) {
// DNS OK
printf("DNS lookup succeeded. %s: %s\r\n", target_name, inet_ntoa(*(struct in_addr*)hp->h_addr));
} else {
// DNS failed
printf("DNS failed!\r\n");
}
hp = NULL; retry = 0;
do {
hp = gethostbyname(EXAMPLE_DNS);
} while (hp == NULL && retry++ < 20);
if(hp) {
// DNS OK
printf("DNS lookup succee